猿问

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

constructor(props, context) {

super(props);

this.state = {

ShowVoucher: false

 }

我想更改showVoucher的状态。无需重新渲染组件。我已经尝试过这样


componentDidUpdate(prevState) {

if(prevState.showVoucher!= this.state.showVoucher){

  this.setState({ ShowVoucher: false})

}

  }

但是我的代码陷入了无限循环。我该如何解决?任何其他解决方案都欢迎。


素胚勾勒不出你
浏览 241回答 2
2回答

Cats萌萌

如果您要存储一个值,但不希望在该值更改时重新渲染组件,则该状态不应该处于此状态。它应该只是一个实例变量,例如constructor(props, context) {    this.ShowVoucher = false;}然后this.ShowVoucher = true;不要将事物置于状态,然后尝试阻止其更改导致重新渲染。那是一种反模式。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答