gpt4 book ai didi

navigation - ExNavigation-从父组件或renderRight访问导航器

转载 作者:行者123 更新时间:2023-12-04 04:37:12 26 4
gpt4 key购买 nike

我在ExNavigation项目中使用Exponent

如何从路线组件之外进行导航?

所以我从同一个地方创建

<NavigationProvider router={router}>
<StackNavigation initialRoute={router.getRoute('First')}/>
</NavigationProvider>

我想访问 navigator,以便可以 pushpop

另一个选择是从 First组件内部进行推送,但是我正在 renderRight组件中进行此操作,该组件在我的 static route内部声明,因此我无法访问 this.props.navigator

我还想要一种将 Prop 从父级(声明 <NavigationProvider>...)传递到路线组件的方法。

这有可能吗?

注意:我不想为此使用Redux存储。显然,我可以使用全局函数来实现任何目标。

最佳答案

另一个选择是从First组件内部进行推送,但是我正在renderRight组件中进行此操作,该组件在我的静态路由中声明,因此我无法访问this.props.navigator。

您可以使用this.props.navigator装饰器访问@withNavigation。这是LogoutButton按钮的示例,您可以在renderRight中使用它。

import React, {Component} from "react";
import {AsyncStorage, Button} from "react-native";
import Router from "../../Router";
import {withNavigation} from "@exponent/ex-navigation/src/ExNavigationComponents";

@withNavigation
export default class LogoutButton extends React.Component {
render() {
return (
<Button
title='Log out'
onPress={()=>{this.doLogout()}}/>
)
}

doLogout() {
AsyncStorage.clear();
this.props.navigator.immediatelyResetStack([Router.getRoute('login')], 0)
}
}

关于navigation - ExNavigation-从父组件或renderRight访问导航器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40708259/

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