我正在观看关于React的Pluralsight课程,导师说道具不应该改变.我现在正在阅读一篇关于道具与状态的文章(uberVU/react-guide),它说
道具和状态更改都会触发渲染更新.
在文章的后面它说:
道具(属性的简称)是组件的配置,如果可以的话,它的选项.他们是从上面收到的,不可改变的.
getInitialState吗?我最近遵循了一个反应教程来创建一个模板项目,并且一直在修改代码以满足我的需求.特别是,组件上有一段代码传递了一个名为的参数label.
render() {
const { label } = this.props;
...
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,我从控制器返回了一个JSON对象,并使用名为的参数将其传递给此组件rune.runeJSON 的属性是"name",我想将名称赋给名为`label的变量.给我带来麻烦的一件事是:
render() {
console.log("Prop.runes.name: " + this.props.rune.name);
const { label } = this.props.rune.name;
console.log("Label: " + label);
...
}
Run Code Online (Sandbox Code Playgroud)
第一个console.log(...)正确输出名称.但是,第二个日志未定义.经过一些试验和错误后,我发现如果我从const声明中删除花括号,则名称已正确解析.
render() {
const label = this.props.rune.name;
...
}
Run Code Online (Sandbox Code Playgroud)
最初做的花括号是什么?教程最初有这些原因是否有原因?