0

高次コンポーネントをクレートし、「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
4

0 に答える 0