高次コンポーネントをクレートし、「componentDidMount」にロジックを追加してから、「this.setState({});」を介して強制的に更新したいと考えています。しかし、setState({}) が起動された後、次の props (render メソッド内) は emty object{}
になり、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