我想创建高阶组件,在“componentDidMount”中添加一些逻辑,然后通过“this.setState({});”强制它更新。但是在 setState({}) 触发之后,next props(在 render 方法中)变成了一个 emty object {}
,并且this.props.children
也变成了 undefined。
const SomeComponet = props => (
<div>{props.children}</div>
);
function connect(WrappedComponent) {
return class Connect extends Component {
componentDidMount() {
this.setState({});
}
render() {
console.log("children:", this.props.children)
return <WrappedComponent {...this.props}/>;
}
};
}
const HOC = connect(SomeComponet);
export default () => (
<HOC>
<span>!!!!!!!!!</span>
</HOC>
);
这是为什么 ?
在控制台中,我看到这样的输出:
children: [VNode]
children: undefined