【发布时间】:2021-07-25 18:13:47
【问题描述】:
我有一个箭头功能来切换 div 并根据 div 设置一个按钮来显示或隐藏。
toggleDeliveryDiv = () => {
document.getElementById('btn_collapse_delivery').click();
this.setState({deliveryShow: !this.state.deliveryShow})
var styl = document.getElementById("plusDiv")
if(this.state.deliveryShow){
styl.style.display = 'block'
}else{
styl.style.display = 'none'
}
}
我在 onClick 事件中调用箭头函数,如下所示:
onClick={this.toggleDeliveryDiv}
但是我猜该方法要么被调用两次,要么组件由于 setState 调用而被重新渲染。请问我怎样才能防止箭头函数中的重新渲染,或者我怎样才能更好地实现这一点???
【问题讨论】:
-
你不应该在 react 中主动操作 DOM(除非在非常特殊的极端情况下),你应该依靠
this.state来改变可见性。 -
我的用例剥夺了我依赖状态来改变可见性的能力,因为它总是创建一个新实例并导致多个元素具有相同的 id 错误
标签: javascript reactjs setstate