React set状态变量

问题描述 投票:1回答:2

我很困惑。我正在尝试在setState中添加数组变量。我的代码工作正常但想在提交代码之前确认一些疑问。

在状态变量中存储数组的正确方法是什么?

var names = ['Jake', 'Jon', 'Thruster'];

this.setState({
    state: names
});

要么

this.setState((state) => {
    state.items.push(names[0]);
    return state;
});

这里有什么必要的退货声明?

有人可以解释一下这里的区别吗?我在谷歌搜索但我仍然感到困惑。

reactjs
2个回答
1
投票
var names = ['Jake', 'Jon', 'Thruster'];

this.setState({
    names //according to Airbnb rules
});

要么

this.setState({
    names: names
});


this.state.names = ['Jake', 'Jon', 'Thruster'];

setState接受第二个参数 - 回调,它将在设置State属性后调用

setState({property1: value1, ...}, () => { //some code after State changed })

0
投票

第一种方法更为常见,在我看来,更容易阅读。您的代码的问题是您不需要使用密钥状态,因为您调用的函数是“设置状态”。关键应该是firstNames。

this.setState({
    firstNames: names
});

您也可以像这样在函数中传递对象,因为setState将对象作为参数。

var name Object = {first Names:names}

this.setState(namesObject);

我会在这里阅读更多关于它的内容并继续做这方面的小教程,你会得到它的支持。 https://facebook.github.io/react/docs/react-component.html#setstate

© www.soinside.com 2019 - 2024. All rights reserved.