我想创建更高阶的组件,在'componentDidMount'中添加一些逻辑,然后通过“this.setState({});”强制它更新。但是在setState({})被触发后,下一个道具(在渲染方法中)变成了一个emty对象{}
,而this.props.children
也变得未定义。
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