我有一个呈现子组件的组件。当执行子组件的构造函数时,它会执行在父组件中设置this.value = value
的处理程序(来自父组件)。这样做是因为父级需要访问来自子级的一些数据,这些数据在稍后调用父级componentDidUpdate()
时使用。
React组件的行为是否可以接受?
我应该指出,我的示例代码没有说明子实际上是通过渲染道具渲染的,这是params数据实际来自哪里以及为什么父母无法访问它来自渲染道具组件。
PARENT
handleParams = (param) => {
this.params = params
}
render() {
return (
<Child handleParams={this.handleParams} />
)
}
儿童
constructor(props) {
this.props.handleParams(this.params)
}
答案 0 :(得分:0)
绝对。此模式超出了React,可以在许多其他环境中使用。当系统的一部分需要来自另一部分的信息时,它或者无法直接访问,或者尚未创建(或者两者都没有),提供一种方法来获取外部依赖关系是常见的。
老实说,如果你试图直接在父母身上设置属性,我只会担心。然后不是因为父/子关系,而是因为变得更难以推断变化如何在整个系统中传播而你对这些变化的控制较少(例如,你可以通过一种方法提供一种机制来防止某些条件下的变化,直接修改属性时无法实现的目的。)