理解fetch call reactjs中的代码

时间:2017-02-05 07:09:40

标签: reactjs ecmascript-6

我无法与下面代码中的最后一行相关联

componentWillMount(){
fetch( 'https://swapi.co/api/people/?format=json' )
  .then( response => response.json() )
  .then( ({results: items}) => this.setState({items}))
}

最后一个有{results: items},然后如果以es5方式解释,它会设置或分配{items:items}。但我无法提及论证的方式。

为什么我们不能做

.then( (items) => this.setState({items}))

请指教!

1 个答案:

答案 0 :(得分:1)

在您的回复中看起来有一个名为'结果'并且你想设置'项目'在你的州的对象。所以如果你刚才说

.then( (items) => this.setState({items}))

它会寻找'项目'对象并将其设置为状态中的项目对象。但是,您的回复中的对象并未被称为“项目”,它被称为“结果”。所以首先将它从结果重新标记为项目,然后将其用作参数。所以:

.then( ({results: items}) => this.setState({items}))

相同
.then( ({results}) => this.setState({items: results}))