微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

单击后,代码会崩溃。

单击后,该元素应被隐藏/删除,直到下次应用重新启动为止。

这里是Code Sandbox Link,以供进一步说明。

我乐于接受任何解决方案,但也请您解释一下,因为我仍在学习React。

解决方法

我对您的代码进行了一些更改以使其正常运行。您可以根据需要进行进一步的更改。我想添加一些内容:-

  1. 您应该避免使用findDOMNode(在大多数情况下,参考文献可以解决您的问题),因为findDOMNode存在某些缺点,例如react's documentation states“ findDOMNode不能与功能组件一起使用”。 我已经使用了ref(在这种情况下为转发ref)来使其工作。

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

  3. 签出code sandbox

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。