React set状态变量

时间:2017-04-25 10:30:00

标签: reactjs

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

哪种方法可以将数组存储在状态变量中?

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

this.setState({
    state: names
});

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

this.setState({
    names: names
});


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

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

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

答案 1 :(得分:0)

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

this.setState({
    firstNames: names
});

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

var namesObject = {    firstNames:名字 }

this.setState(namesObject);

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