gpt4 book ai didi

javascript - 使用 React 扩展运算符在数组中设置 State

转载 作者:行者123 更新时间:2023-11-28 13:00:25 26 4
gpt4 key购买 nike

我的 react 状态有一个值,如下所示:

appointmentsData = {
"05-01-2018": [
{
id: "1",
friendly: "9:00am - 10:00am",
openDateTime: "9:00am",
closeDateTime: "10:00am"
}
]
};

我有一条新数据:

const newAppt = {"06-30-2018":[]}

如何添加我在该州的数据?我试过了

this.setState({ ...this.state.appointmentsData, ...newAppt}); 

不过,它似乎没有添加到状态中。我在渲染中得到与以前相同的值(传播前的约会数据)。 newAppt 永远不会被添加到状态中。

我正在尝试让我的状态期望输出为:

appointmentsData = {
"05-01-2018": [
{
id: "1",
friendly: "9:00am - 10:00am",
openDateTime: "9:00am",
closeDateTime: "10:00am"
}
],
"06-30-2018": []
};

最佳答案

确实有很多方法可以做到这一点。这是一个:

this.setState(prevState => (
{appointmentsData: {...prevState.appointmentsData}, newAppt}
));

尽管您的方法也应该有效,但如果您只是先添加 appointmentsData: 。就像这样:

this.setState({appointmentsData: {...this.state.appointmentsData, ...newAppt}});

这会将所有先前的值以及您要添加的值分散到一个新对象中。

当新状态取决于先前的状态值时,我个人总是使用设置状态的函数方式,但您的方式在这里也很好。

关于javascript - 使用 React 扩展运算符在数组中设置 State,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51118865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com