给出对子项的引用(从我无法覆盖的库中定义),是否已经提供了一个内置钩子来利用子项的componentDidUpdate?
如果我可以定义子代,则相当于:
Parent extends React.Component {
constructor() {
this.child = React.createRef();
}
render() {
return (<Child ref={this.child});
}
}
Child extends React.Component {
componentDidUpdate(prevProps, prevState, snapshot) {
this.props.onComponentDidUpdate(prevProps, prevState, snapshot);
}
}
答案 0 :(得分:1)
我认为这不能(正确地)完成。如果我理解正确,则不会调用父级中的componentDidUpdate
,因为在更改子级时,实际上不会更新父级。仅应调用子组件及其子componentDidUpdate
方法。
可以提出一些奇怪的解决方案(例如,通过该componentDidUpdate
修补猴子ref
,在父级中处理,然后调用子级处理程序),但这听起来很脆弱,而您d破坏组件封装并使您的父子组件紧密耦合。您可能还想扩展您的问题,以更好地解释为什么需要这样做。我对React的经验是,如果您尝试做一些不可能的事情,那可能是因为您缺少了一些东西。