我用getDerivedStateFromProps反应16.3.为什么反应会显示此警告?
Did not properly initialize state during construction. Expected state to be an object, but it was undefined.
在codepen上演示
class TestComponent extends React.PureComponent {
static getDerivedStateFromProps(nextProps) {
const {record,} = nextProps;
return {
title: record ? record.title : '',
};
}
render() {
const {title} = this.state;
return (
<div>{title}</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
是的,您需要为状态设置初始值:
class TestComponent extends React.PureComponent {
constructor(props) {
super(props);
this.state = {
title: ''
};
}
// rest of your code
Run Code Online (Sandbox Code Playgroud)
或者,使用ES7语法 :(如果您使用create-react-app创建应用程序,则会支持此功能)
class TestComponent extends React.PureComponent {
state = {
title: ''
}
// rest of your code
Run Code Online (Sandbox Code Playgroud)
您可能有兴趣在媒体上阅读此博客.
| 归档时间: |
|
| 查看次数: |
1855 次 |
| 最近记录: |