2017-04-25 109 views
1

我有一个困惑。我试图在setState中添加数组变量。我的代码工作正常,但在提交我的代码之前想确认一些疑问。反应集状态变量

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

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

this.setState({ 
    state: names 
}); 

或者

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

什么是必要的这里return语句?

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

+1

你问为什么* *您必须从箭头的函数返回'state'? –

回答

0

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

this.setState({ 
    firstNames: names 
}); 

你也可以在这样的函数中传递对象,因为setState需要一个对象作为参数。

变种namesObject = { firstNames:名称 }

this.setState(namesObject);

我会在这里阅读更多关于它的信息,并继续在这个小的教程上,你会得到它的窍门。 https://facebook.github.io/react/docs/react-component.html#setstate

0

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 })