【问题标题】:React For Cycle in SetState在 SetState 中响应循环
【发布时间】:2020-07-18 18:33:07
【问题描述】:

请帮我把 for 循环放到 fetch 中的 setState 中

fetch(ip + '/stats', {
    method: "GET",
})
.then(function (response) {
    return response.json();
})
.then(data => {
    this.setState({ 
        variable: {
             datasets: [{
                 data: [
                        data[0],
                        data[1],
                        data[2],
                        data[3],
                        data[4],
                        data[5],
                    ],
                }]
            }
        })
    }
})

但我有一个数据中的项目

但是当我想插入这个时,就像那样

fetch(ip + '/stats', {
    method: "GET",
})
.then(function (response) {
    return response.json();
})
.then(data => {
    this.setState({ 
        variable: {
             datasets: [{
                 data: [
                    for (let i = 0; i < data.length; i++) {
                        data[i],
                    }
                    ],
                }]
            }
        })
    }
})

我收到一个错误“解析错误:意外令牌”

请帮帮我。如何在 setState 中循环?

【问题讨论】:

    标签: reactjs fetch setstate


    【解决方案1】:

    只需定义您的 data 变量,然后将其设置为状态变量,如下所示:

    .then(data => {
        let dataArr = [];
    
        for (let i=0; i<data.length; i++)
            dataArr.push(data[i]);
    
        this.setState({variable: {datasets: [{data: dataArr}]}});
    })
    

    【讨论】:

      【解决方案2】:

      你可以写成:

      // { data } is shortcut for { data: data }
      this.setState({ variable: { datasets: [{ data }] } }) 
      

      如果你真的需要从数据数组创建一个新数组:

      // [...myArr]: this spreads myArr values into a new array
      this.setState({ variable: { datasets: [{ data: [...data] }] } }) 
      

      【讨论】:

        猜你喜欢
        • 2021-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-04
        • 2018-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多