Javascript 在对象数组上的react setState中使用spread运算符
我有一个对象数组(语言代码和名称),我正试图将其扩展到react组件中本地状态的另一个数组中。我试图传播的阵列结构如下所示:Javascript 在对象数组上的react setState中使用spread运算符,javascript,reactjs,setstate,Javascript,Reactjs,Setstate,我有一个对象数组(语言代码和名称),我正试图将其扩展到react组件中本地状态的另一个数组中。我试图传播的阵列结构如下所示: let langs = [ {code: "af", name: "Afrikaans"}, {code: "sq", name: "Albanian"} ] this.setState({ languages: [...langs] }, console.log(this.state.languages); ); 我正在尝试这样的事情: let l
let langs = [
{code: "af", name: "Afrikaans"},
{code: "sq", name: "Albanian"}
]
this.setState({
languages: [...langs]
},
console.log(this.state.languages);
);
我正在尝试这样的事情:
let langs = [
{code: "af", name: "Afrikaans"},
{code: "sq", name: "Albanian"}
]
this.setState({
languages: [...langs]
},
console.log(this.state.languages);
);
当我尝试从setState回调console.log语言时,数组为空。我做错了什么 第二个参数是回调-您立即执行
console.log
,并将其结果作为回调传递。将您的代码更改为:
this.setState({
languages: [...langs]
},
() => console.log(this.state.languages);
);
setState
是异步的,您需要在回调中调用该函数
this.setState({
languages: [...langs]
}, () => console.log(this.state.languages)
);
setState是一个异步操作。在中使用console.log(),或在render()中使用;啊,我现在觉得自己太傻了,谢谢斯坦利和杰米克!