我在here上阅读了这一行



this.setState({ chats: [...this.state.chats, data], test: '' });





我认为我们在状态中保存聊天数组,... this.state.chat指向原始聊天变量,然后我迷路了

最佳答案

该代码更新了两个状态属性:


chats-使用array spread从先前的chats和新的data创建新的数组。
test-将测试更新为空字符串。这是原始代码中的错字,应该为text


传播示例:



const chats = [1, 2, 3];
const data = 4;
const newChats = [...chats, data];

console.log(newChats);





但是,由于状态是异步的,因此最好使用updater callback更新状态,因为:


  updater函数接收的prevState和props均为
  保证是最新的。更新器的输出浅
  与prevState合并。


更新示例:

this.setState((prevState) => ({ chats: [...prevState.chats, data], test: '' }));

关于javascript - React.js:有人可以向我详细说明这一行吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50084057/

10-11 20:29