[英]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.