我觉得这是一个愚蠢的问题,但我找不到答案。
目前我有状态:
this.state = {
jsonReturnedValue: []
}
我执行获取请求并获取数据数组:
componentDidMount() {
fetch('http://127.0.0.1:8000/api/printing/postcards-printing')
.then(response => response.json())
.then(json => {
this.setState({ jsonReturnedValue: [...this.state.jsonReturnedValue, json.printCategory.products] }, () => console.log(this.state));
});
}
这会将数组从我的提取请求中拉出,但是会创建以下代码:
jsonReturnedValue
[0]Array
[3] Array <--- the array I'm wanting is nested in the original array.
我需要的是
jsonReturnedValue
[3]Array
我需要我的提取响应不要嵌套在已经完成的数组中。
最佳答案
传播要连接的两个数组:
this.setState({
jsonReturnedValue: [
...this.state.jsonReturnedValue,
...json.printCategory.products,
],
}, () => console.log(this.state));
或使用
Array#concat
:this.setState({
jsonReturnedValue: this.state.jsonReturnedValue
.concat(json.printCategory.products),
}, () => console.log(this.state));
或者,如果您要替换而不是连接:
this.setState({
jsonReturnedValue: json.printCategory.products,
}, () => console.log(this.state));