我熟悉解构的概念……又名:
const { name } = student // assigns a variable named name with the value of student.name
但是,今天我看到销毁内部的任务看起来很困惑,我感到困惑。又名:
constructor(props) {
super(props);
const {tabs = [{name : null}]} = props;
const firstTab = tabs[0];
this.state = {
currentTab : firstTab.name
} ;
}
我不了解这部分,const { tabs = [{name : null}] } = props
。有人可以帮忙解释一下这种语法吗?
答案 0 :(得分:1)
当[ { name: null } ]
没有属性props
时,这是将制表符的默认值设置为tabs
的一种奇特的方式
// When props.tabs === undefiend
let props = { param1: "param1" };
let { tabs = [{ name : null }] } = props;
console.log(tabs); // returns [{ name: null }]
// when props.tabs !== undefined
let props = { tabs: [{name: "param2"}, {name: "param3"}] };
let { tabs = [{ name : null }]} = props;
console.log(tabs) // returns [{name: "param2"}, {name: "param3"}]
关于此默认值分配的好处是,它使错误代码更少。当下一行代码运行时如果您未设置默认分配,则const firstTab = tabs[0];
tabs[0]
会崩溃。