我从(父组件)listView:
导航rowPressed(element) {
this.props.navigator.push({
title: element.title,
rightButtonSystemIcon: 'action',
onRightButtonPress: () => {
// how to call my function _handleRightButtonPress() ?
},
component: ElementDetail,
passProps: {
element: element
}
});
}
我想在ElementDetail组件上调用_handleRightButtonPress():
class ElementDetail extends Component {
constructor(props) {
super(props);
...
}
_handleRightButtonPress() {
console.log('right Button Pressed');
};
...
}
任何想法如何做到这一点?
答案 0 :(得分:0)
最简单的方法是让父母将一个功能传递给孩子。孩子可以使用该功能与其父母进行交流。
父母会将一个函数作为道具传递给孩子,如下所示:
<MyChild myFunc={this.handleChildFunc.bind(this)} />
孩子会这样称呼这个函数:
this.props.myFunc();
And don't forget that the child will need this function declared in its propTypes:
MyChild.propTypes = {
myFunc: React.PropTypes.func,
};
有关组件之间通信的更多详细信息,请参阅Link