我在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。
怎么了?我已经烦了好几天了。
我改变了window.addEventListener,它的工作。为什么会这样?我不知道。