设置嵌套数组对象的状态?

时间:2020-05-13 01:20:12

标签: javascript reactjs

如何在数据集中设置值对象的状态。我尝试通过以下方法设置状态,但出现了错误。

this.setState({ datasets: { ...this.state.datasets, value: labels} });

//状态码

this.state = {
            labels: ['January', 'February', 'March',
                'April', 'May'],
            datasets: [
                {
                    label: 'Rainfall',
                    backgroundColor: 'rgba(75,192,192,1)',
                    borderColor: 'rgba(0,0,0,1)',
                    borderWidth: 2,
                    value: [65, 59, 80, 81, 56],
                }
            ]
        }

2 个答案:

答案 0 :(得分:0)

在您的状态下,数据集是一个数组。但是,在setstate调用中,您正在将其分解为一个对象。您应该这样做才能使其正常工作:

this.setState({ datasets: [ {...this.state.datasets[0], value: labels }] });

答案 1 :(得分:-1)

不确定我对您要执行的操作是否完全清楚,但我认为问题是state.datasets是对象数组,并且您未在该数组中处理特定元素。您可能需要尝试以下方法:

this.setState( state => { 
    let newData = state.datasets[0]
    newData.value = labels
    return newData
}