【发布时间】:2017-05-23 18:02:24
【问题描述】:
这是一个组件:
export default class MyComponent extends React.Component {
componentWillReceiveProps(newProps) {
console.log('RECEIVED PROPS');
}
render() {
return <div>{this.props.foo}</div>
}
}
这是一个包装器/高阶组件:
const withSomething = (ComponentToWrap) => {
render() {
return <ComponentToWrap {...this.props} />
}
}
这是一个将 MyComponent 包装在 withSomething 中的功能组件:
export default function WrappedComponent(props) {
const Component = withSomething(MyComponent);
return <Component ... some props ... />
}
结果:MyComponent 中与 props 相关的生命周期函数(例如 componentWillReceiveProps)永远不会触发,即使我更新了 props。
这是怎么回事?基于 props 的生命周期方法是否不适用于包装的组件?
【问题讨论】:
标签: javascript reactjs