如何从动作文件进行导航调用

时间:2020-04-07 13:57:55

标签: react-native redux react-redux react-navigation

在我的本机应用程序中使用react-navigation v5和redux时,如何从动作文件触发导航?有什么更好的方法可以做到这一点吗?完成结果后,我想触发到下一个屏幕的导航,但是不能使用useNavigation()。谢谢。

2 个答案:

答案 0 :(得分:3)

创建对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来保存引用

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/

答案 1 :(得分:0)

这个问题对您有帮助吗?似乎是某人试图完成与您的情况类似的情况造成的

React-Navigation: navigate from actions file

相关问题