Странное поведение addEventListener - ReactJs - PullRequest
0 голосов
/ 28 мая 2020

Я создаю древовидную структуру в 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.io/s/github/krystianwolanski/ReactAndAspCoreTreeStructure/tree/master/ClientApp?file= / src / TreePage / TreePage. js

Что не так? Устал уже несколько дней

1 Ответ

0 голосов
/ 29 мая 2020

Я перешел на window.addEventListener, и он работает. Зачем? Я не знаю.

...