[英]Why is this counted as mutating state?
handleClick(event) {
let value = event.target.value;
this.setState({ question: (this.state.question += value) });
我收到警告:
不要直接改变状态。 使用setState()react / no-direct-mutation-state
如果我尝试用此代码加载页面。
我该如何解决,以免出现警告?
它说使用this.setState
,但这就是我在做的。
错误在这里:
this.state.question += value
+ =是用于将右操作数添加到左操作数的运算符。 您正在尝试为this.state.question添加值。
正确的方法是:
this.setState(previousState => ({ question: previousState.question + value }));
这被认为是变异状态,因为您正在为this.state.question
中的this.state.question
分配一个值(this.state.question += value)
。 我已经粘贴了指向代码沙箱的链接,您可以查看该代码沙箱以查看如何正确实现此行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.