我在提升状态并将组件转换为功能时遇到麻烦。我的代码有什么问题。
说明:1:在JS部分中,创建一个名为App
的类组件。在其render()
方法内部,使它返回Welcome
组件。在ReactDOM.render()
方法中,将Welcome
更改为App
。
2:将状态从Welcome
组件提升到App
,以便在App
的构造函数中初始化状态。
3:将Welcome
组件转换为返回与以前相同的欢迎消息的函数组件。您需要将bootcampName
的{{1}}状态属性传递给App
组件。是否解构取决于您。
Welcome
答案 0 :(得分:1)
您在那里有一些错误
代码在这里:
class App extends Component {
constructor(props) {
super(props);
this.state = {
bootcampName: "Nucamp"
};
}
render() {
return (
<div className="App">
{ /**
* you need to close the Welcome Component
* you need to name the prop
*/}
<Welcome bootcampName={this.state.bootcampName}/>;
</div>
);
};
}
// Here destruct props to use it
function Welcome({bootcampName}) {
return (
<h1>Welcome to {bootcampName}!</h1>
);
}
ReactDOM.render(<App />, document.getElementById('root'));
答案 1 :(得分:0)
命名道具:
<div className="App">
<Welcome bootcampName={this.state.bootcampName} />
</div>
答案 2 :(得分:0)
使用功能组件时,不再需要使用this
。尝试这样做:
class App extends Component {
constructor(props) {
super(props);
this.state = {
bootcampName: "Nucamp"
};
}
render() {
return (
<div className="App">
<Welcome bootcampName={this.state.bootcampName}>;
</div>
);
}
}
function Welcome({bootcampName}) {
return (
<h1>Welcome to {bootcampName}!</h1>
);
}