当部署到 SP 站点时,在 SPFX webpart 中单击按钮时模态出现然后消失

Modal appearing then disappearing on button click in SPFX webpart when deployed to SP site

我有两个 Web 部件。一个 Web 部件几乎与另一个相同。 Web 部件 A 有一个用户可以单击的按钮,它显示一个模式。 Web 部件 B 有一个用户可以单击的按钮,它加载模式,半秒后消失。 Webpart B 在 SPO 站点上的 workbench 上测试时工作正常,但在作为 .sppkg 文件部署到实际 SPO 站点时显示上述行为。 我检查了模态状态,它在 true 和 false 之间正确切换。

我正在使用: 边缘铬, 具有宽栏类型页面的 SPO 通信站点(WebPart A 在这方面工作正常) Windows10个, 节点版本 v8.16.0, 构建工具版本 8.16.0

这是调出模态的代码:

if(this.state.showModal !== true){
    return (
      
        <div className={styles.jobeval}>
          <div className={styles.container}>
           ... //here is a list of items that are successfully retrieved from an SPO list
            <div className={styles.row}>
              <div className={styles.column}>
                <DefaultButton
                  disabled={false}
                  checked={true}
                  text="New"
                  onClick={this._onNew} //this button sets the modal's is Open state to true
                />
              </div>
            </div>
       
        </div>
        );
      } else if(this.state.showModal == true) {
        return(
     
          <Modal

          titleAriaId={this._titleId}
          subtitleAriaId={this._subtitleId}
          isOpen={this.state.showModal}
          onDismiss={this._closeModal}
        closeButtonAriaLabel={"Close"}
        isBlocking={true}
        containerClassName={styles.modalBody}
          
        > 
Here's the modal content
          </Modal>

     
        );

WebPart A 具有相同的代码,但具有不同版本的@pnp/sp,但我认为这与它没有任何关系。

任何想法 - 提醒一下,它在测试中有效 workbench 但在作为包部署时无效。

这是无法解释的。我到处看了看,最后决定是@pnp/sp 没有正确加载。我已经更改了@pnp 的安装代码,它现在适用于比以前更多的租户,但它仍然不适用于特定租户。