addEventListener的奇怪行为 - ReactJs

问题描述 投票:0回答:1

我在React中创建了一个树形结构,当我点击任何项目列表上下文菜单上的右键时,就会出现各种选项供我选择。当我点击任何一个选项出现模态。

而且它的工作原理。但是,当我没有硬性指定树结构,而是输入从服务器下载的树(由redux传递)时,情况发生了变化。然后突然从上下文菜单中点击选项后,模态就不出现了。

之前的情况。

    componentDidMount(){
      //this.props.getTree()
      document.addEventListener('click', this.hideContextMenu.bind(this))

    }
    componentWillUnmount(){
      document.removeEventListener('click',this.hideContextMenu.bind(this))
    }
<Container>
                {this.renderSubNodes(treeFromConst)}      

改为从服务器下载树后。

    componentDidMount(){
      this.props.getTree()
      document.addEventListener('click', this.hideContextMenu.bind(this))

    }
    componentWillUnmount(){
      document.removeEventListener('click',this.hideContextMenu.bind(this))
    }
<Container>
                {treeFromServer && this.renderSubNodes(treeFromServer)}

这里是CodeSandbox的链接。我从const传递树 - https:/codesandbox.iosgithubkrystianwolanskiReactAndAspCoreTreeStructuretreemasterClientApp?file=srcTreePageTreePage.js。

怎么了?我已经烦了好几天了。

reactjs react-redux
1个回答
0
投票

我改变了window.addEventListener,它的工作。为什么会这样?我不知道。

© www.soinside.com 2019 - 2024. All rights reserved.