Я просматривал пример ввода исходных автозаполнений React, когда я столкнулся с классическим вызовом this.setState, который не сливался в объект с меткой.
constructor(props) {
super(props);
this.state = {
films: [],
query: ''
};
}
componentDidMount() {
fetch('${API}/films/').then(res => res.json()).then((json) => {
const { results: films } = json;
this.setState({ films });
});
}
Я ожидал, что вызов this.setState будет выглядеть
this.setState({ films: films });
Где код/документация, в которой говорится, что этот синтаксический сахар разрешен? Является ли это чистой функцией JavaScript или реакцией?
Это похоже на декомпозицию объекта, но "отменено".
Я также дважды проверял, чтобы вызов API действительно возвращал массив вроде
"results": [ ... ]
так что это не так. this.setState({ films });
на самом деле имеет форму this.setState({ films: actual_object });
,
Он ссылается на сокращенную литературу Object.
this.setState({ films });
// is the same as:
this.setState({ films: films });
См. Также http://es6-features.org/#PropertyShorthand для синтаксического сахара.