试图理解代码段。以下代码段中...this.savedSettings()
的作用。 afaik,省略号用于解构并将变量传递给函数(扩展语法)
constructor(props) {
super(props);
this.state = {
page: 'dashboard',
...this.savedSettings(), // THIS LINE
setPage: this.setPage,
};
}
savedSettings() {
if(noData) {
return {page: 'settings', firstVisit: true};
}
return {};
}
这实际上用作传播语法。语法将应用于返回的对象。它将给定的对象(this.state
与函数this.savedSettings()
返回的对象合并。导致this.state
分配有
// if noData is true
{
page: 'settings', // MERGED/OVERWRITTEN
firstVisit: true, // MERGED/ADDED
setPage: this.setPage,
};
或
// if noData is false
{
page: 'dashboard',
setPage: this.setPage,
};