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

作者: MJ 分类: react 发布时间: 2019-05-18 11:59

react中直接改变state会报警告 Do not mutate state directly. Use setState() react/no-direct-mutation-state,在react中不允许直接修改state,我们可以迂回来处理一下:

let str = this.state.strArr;
let strRes = str += e.target.innerText;
this.setState({
     strArr:strRes
});

到这里可以了,但是还有一个新问题,就是数据不同步,原因就是setState是异步,所以我们在获取新的state的时候需要在setState的回调函数中处理:

let str = this.state.strArr;
let strRes = str += e.target.innerText;
this.setState({
     strArr:strRes
 },()=>{
    console.log(this.state.strArr)
});

欢迎关注小程序,感谢您的支持!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注