【发布时间】:2021-07-29 13:38:04
【问题描述】:
我刚刚开始使用 React,并针对我的案例调整了井字游戏教程。 我正在尝试单击孙组件以更改祖父组件的状态。代码如下:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
fields: [
{
id: 1,
show: false
},
{
id: 2,
show: false
}
]
}
}
handleClick(i) {
const fields = this.state.fields.slice();
fields[i].show = true;
this.setState({fields: fields});
}
render() {return <Preview />}
}
const Preview = (props) => {
return (
<div className="preview">
{props.fields.map((field) => (
<Field data={field} key={field.id} onClick={ props.onClick(field.id) }/>
))}
</div>
);
};
const Field = props => {
return (
<div className="field" onClick={ props.onClick } />
);
};
我得到一个 TypeError: Cannot read property 'state' of undefined from this line:
handleClick(i) {
const fields = this.state.fields.slice();
【问题讨论】:
-
但是您没有将任何道具传递给
<Preview />
标签: javascript reactjs