因此,刚刚了解到不建议使用componentWillReceiveProps
,我们现在需要使用getDerivedStateFromProps
生命周期方法。
https://reactjs.org/docs/react-component.html#static-getderivedstatefromprops
我正在如下使用它:
class Main extends Component {
static getDerivedStateFromProps(props) {
console.log('getDerivedStateFromProps', props);
const { modal } = props;
this.setState({ modal });
}
constructor(props) {
super(props);
this.state = {
modal: {}
};
}
但是它在
setState
上出错main.js:30未捕获的TypeError:无法读取null的属性“ setState”
在getDerivedStateFromProps(main.js:30)
我在这里想念什么?
最佳答案
因为getDerivedStateFromProps
是static
函数,所以没有实例(this
)。
而是设计了此函数,以便您返回状态而不是使用this.setState
。
static getDerivedStateFromProps(props) {
console.log('getDerivedStateFromProps', props);
const { modal } = props;
return { modal };
}