【发布时间】:2021-01-18 11:48:55
【问题描述】:
我试图在单击元素“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 仍然很陌生。
【问题讨论】:
-
只是一些旁注:你操纵可见性的方式完全不适合反应——而不是设置 DOM 元素样式,你应该依赖状态(本地或全局)并相应地修改它带有事件处理程序;只要您在整个应用程序中使用功能组件,就没有
this.state,出于同样的原因,您最好使用useSelector()anduseDispatch()hooks 而不是connect。 -
至于您的具体问题,您应该将您尝试的代码嵌入到沙箱的必要组件中,否则不太清楚应该点击什么以及预计会发生什么(此外,需要调度哪些操作)。
-
嗨 Yevgen,我非常感谢您的意见,但是我对这一切都很陌生,我发现您的解释太先进了,我无法理解。我知道您不知道我是新手,我可能应该知道您使用的术语,但其中大部分我不理解。我非常感谢任何回应并利用他们的时间帮助他人的人
标签: reactjs onclick components hide