重新渲染后,HOC中的子组件未定义

时间:2017-08-24 19:21:30

标签: reactjs preact

我想创建更高阶的组件,在'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

0 个答案:

没有答案