gpt4 book ai didi

ios - 处理打开的组件中的 NavigatorIOS ButtonPress

转载 作者:行者123 更新时间:2023-12-02 22:52:43 25 4
gpt4 key购买 nike

我的应用程序中有 NavigatorIOS,我打开一个像这样的新页面,它工作正常:

  var createProgramRoute = {
component: CreateProgramPage,
title: "Create Program",
rightButtonTitle: "Save",
onRightButtonPress: () => {
// This part needs to be handled in CreateProgramPage component
},
passProps: {},
};
props.navigator.push(createProgramRoute);

CreateProgramPage类是这样的

var CreateProgramPage = React.createClass({
...

_onRightButtonClicked() {
console.log("right button clicked")
}

});

所以我想在单击NavigatorIOS的RightButton时调用CreateProgramPage_onRightButtonClicked()。没有这样的例子。他们在示例中所拥有的只是调用导航器的 pop() ,仅此而已。

最佳答案

A.在初始组件中

this.props.navigator.push({
title: 'title',
component: MyComponent,
rightButtonTitle: 'rightButton',
passProps: {
ref: (component) => {this.pushedComponent = component},
},
onRightButtonPress: () => {
this.pushedComponent && this.pushedComponent.foo();
},
});

B.在推送组件中
替换推送组件中的 onRightButtonPress 函数。

componentDidMount: function() {
// get current route
var route = this.props.navigator.navigationContext.currentRoute;
// update onRightButtonPress func
route.onRightButtonPress = () => {
this._onRightButtonClicked();
};
// component will not rerender
this.props.navigator.replace(route);
},

关于ios - 处理打开的组件中的 NavigatorIOS ButtonPress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31088474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com