如何在 React 中隐藏或删除元素 onClick?

How to hide or remove an element onClick in React?

我试图在单击元素后隐藏它 'GorillaSurfIn'。 但它也应该将 'setShouldGorillaSurfOut' 触发到 'true'。第二部分有效,但在我添加此功能后:

function hideGorillaSurfIn() {
    let element = document.getElementById('gorilla-surf-in');
    ReactDOM.findDOMNode(element).style.display = 
  this.state.isClicked ? 'grid' : 'none';
}

点击后,代码崩溃了。

点击一次,该元素应该是hidden/removed,直到下次应用程序重新启动。

此处Code Sandbox Link进一步解释。

我对任何解决方案持开放态度,但也请解释,因为我对学习 React 还很陌生。

我已经稍微更改了您的代码以使其正常工作。您可以根据需要进行进一步的更改。我想补充几点:-

  1. 你应该避免使用 findDOMNode(在大多数情况下 refs 可以解决你的问题)因为 findDOMNode 有一些缺点,比如 react's documentation states “findDOMNode 不能与功能组件一起使用”。 我已经使用 refs(在这种情况下为前向 ref)使其工作。

  2. GorillaSurfIn 被调用了两次,因此屏幕上出现了两个具有相同 ID 的大猩猩 gif。不确定这是否是预期的行为,但每个元素都应该有唯一的 ID。

  3. 查看 code sandbox