【发布时间】:2019-09-02 23:49:50
【问题描述】:
我有以下 HOC:
render() {
return (
<div>
<ComposedComponent {...this.props} />
</div>
);
}
以及它正在渲染的组件:
class Banner extends Component {
constructor(props) {
super(props);
...
...
}
}
使用日志记录我发现 HOC 中存在的道具没有被传递给子组件。
(如果我在 props 的子组件的构造函数中执行 console.log ,它只会是 {} 而在 HOC 中我会得到正确的结果)
这通常只发生在我在浏览器中的子页面上,刷新页面后。
为什么会这样?
【问题讨论】:
-
能否贴出父子组件的全部代码?
-
再看一下,似乎我必须使用
componentWillReceiveProps...我只需要帮助了解为什么会发生这种情况以及如何正确实施它。 -
您是否尝试过 HOC 中的
<ComposedComponent data={...this.props} />和子组件中的console.log(this.props.data)? -
是的,这正是我所做的,
console.log有时会返回{},但就像我在回答中指出的那样,我认为这是因为子组件在道具传递给它之前已经渲染.
标签: reactjs