【发布时间】:2018-09-01 07:36:54
【问题描述】:
class Parent extends React.Component {
constructor(props) {
super(props)
this.handleChildOnClick = this.handleChildOnClick.bind(this)
}
handleChildOnClick() {
/* I would like to do something here that requires both Child and Parent.
* But 'this' points to Parent because I binded it in Parent's constructor.
*/
}
render() {
return(
<Child
onClick={this.handleChildOnClick}
/>)
}
}
在handleChildOnClick 回调中,我想调用 Child 的方法来检索一些数据并相应地更新 Parent 的状态。
如果我在 Parent 构造函数中将 Parent 的 this 绑定到 handleChildOnClick,那么我失去了对 Child 的引用,因此无法调用 Child 的方法。但是如果我不绑定它,那么我将无法在handleChildOnClick 中设置 Parent 的状态。
有没有办法绑定this而不覆盖原来的this?
编辑:
我的子组件来自一个库,所以我无法修改它。
编辑:
我正在使用react-google-maps 库。子组件是GoogleMap,每当GoogleMap 的onBoundsChange 回调被触发时,我想将GoogleMap 的新视图边界存储在父状态(通过在GoogleMap 上调用getBounds())。
【问题讨论】:
-
最好写下你的handleChildOnClick(),这将有助于找出你的问题。
标签: javascript reactjs this