【发布时间】:2019-03-27 15:50:13
【问题描述】:
我有一个使用 es6 类符号定义的反应组件。在渲染函数中,我尝试使用扩展符号将一些状态变量传递给子组件:
render() {
return (
// <div>{console.log(this.state.data)}</div>
<Table
{...{
data,
columns,
infinite,
debug: true
}}
/>
);
}
这不起作用:data is not defined。使用this.state.data 和state.data 也不起作用(导致Unexpected keyword 'this' 和Unexpected token)。
但是,取消注释 <div>{console.log(this.state.data)}</div> 表明状态在范围内。最后,这是可行的:
<Table data={this.state.data} columns={this.state.columns}/>
在这种情况下,我是否以某种方式滥用了扩展符号?我已经看到它在 React 函数组件中工作。
【问题讨论】:
-
当您指定对象时,它允许您跳过值 IF 名称与变量匹配。好像你在任何地方都没有
data,所以它应该是...{ data: this.state.data, //other props here },或者你可以在return语句之前做const { data } = this.state。
标签: javascript reactjs scope