为了账号安全,请及时绑定邮箱和手机立即绑定

在React js中如何在不重新渲染组件的情况下使用setstate?

在React js中如何在不重新渲染组件的情况下使用setstate?

素胚勾勒不出你 2021-05-11 17:37:57
constructor(props, context) {super(props);this.state = {ShowVoucher: false }我想更改showVoucher的状态。无需重新渲染组件。我已经尝试过这样componentDidUpdate(prevState) {if(prevState.showVoucher!= this.state.showVoucher){  this.setState({ ShowVoucher: false})}  }但是我的代码陷入了无限循环。我该如何解决?任何其他解决方案都欢迎。
查看完整描述

2 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

如果您要存储一个值,但不希望在该值更改时重新渲染组件,则该状态不应该处于此状态。它应该只是一个实例变量,例如


constructor(props, context) {

    this.ShowVoucher = false;

}

然后


this.ShowVoucher = true;

不要将事物置于状态,然后尝试阻止其更改导致重新渲染。那是一种反模式。


查看完整回答
反对 回复 2021-05-27
  • 2 回答
  • 0 关注
  • 240 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信