【发布时间】:2020-04-07 13:57:55
【问题描述】:
在我的 react-native 应用程序中使用 react-navigation v5 和 redux 时,如何从操作文件触发导航?有没有更好的方法来做到这一点?当结果完成时,我想触发导航到下一个屏幕,但我不能使用 useNavigation()。谢谢。
【问题讨论】:
标签: react-native redux react-redux react-navigation
在我的 react-native 应用程序中使用 react-navigation v5 和 redux 时,如何从操作文件触发导航?有没有更好的方法来做到这一点?当结果完成时,我想触发导航到下一个屏幕,但我不能使用 useNavigation()。谢谢。
【问题讨论】:
标签: react-native redux react-redux react-navigation
为 NavigationContainer 创建一个引用
import { NavigationContainer } from '@react-navigation/native';
import { navigationRef } from './path/to/RootNavigation.js';
export default function App() {
return (
<NavigationContainer ref={navigationRef}>{/* ... */}</NavigationContainer>
);
}
创建一个模块 RootNavigation.js 来保存 ref
import * as React from 'react';
export const navigationRef = React.createRef();
export function navigate(name, params) {
navigationRef.current?.navigate(name, params);
}
现在使用下面的任何地方触发导航:
import * as RootNavigation from './path/to/RootNavigation.js';
//...
RootNavigation.navigate('ChatScreen', { userName: 'Lucy' });
参考:https://reactnavigation.org/docs/navigating-without-navigation-prop/
【讨论】:
这个问题对你有帮助吗?似乎它是由试图完成与您的类似场景的人制作的
【讨论】: