我觉得这是一个愚蠢的问题,但我找不到答案。
目前我有状态:

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));

09-19 11:13