gpt4 book ai didi

javascript - 如何编辑我的代码而不出现 setState() 问题?

转载 作者:行者123 更新时间:2023-11-28 17:03:51 26 4
gpt4 key购买 nike

我的构造函数中有以下代码:

this.state = {
tests: [
{
question: "1",
answer: "2",
user: ""
},
{
question: "1",
answer: "2",
user: ""
},

],

};

我有编辑功能,可以在输入中读取事件值:

  edit(id, event) {
this.state.tests[id].user = event.target.value;
this.setState({tests:this.state.tests});

}

但是 es 给了我这个警告:

Do not mutate state directly. Use setState() react/no-direct-mutation-state

这种情况我能做什么?也许以某种方式将赋值 event.target.value 的行更改为 setState()

最佳答案

您可以使用map()创建测试的副本

edit(id, event) {
const user = event.target.value;
const tests = this.state.tests.map((x,i) => i === id ? {...x, user} : x);
this.setState({tests});
}

关于javascript - 如何编辑我的代码而不出现 setState() 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56498222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com