【问题标题】:How to make a navigation call from actions file如何从操作文件进行导航调用
【发布时间】:2020-04-07 13:57:55
【问题描述】:

在我的 react-native 应用程序中使用 react-navigation v5 和 redux 时,如何从操作文件触发导航?有没有更好的方法来做到这一点?当结果完成时,我想触发导航到下一个屏幕,但我不能使用 useNavigation()。谢谢。

【问题讨论】:

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


    【解决方案1】:

    为 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/

    【讨论】:

    • 我可以在某个地方找到带有打字稿的版本吗?
    • 我也在寻找相同的解决方案。答案对我有帮助。谢谢(y)
    【解决方案2】:

    这个问题对你有帮助吗?似乎它是由试图完成与您的类似场景的人制作的

    React-Navigation: navigate from actions file

    【讨论】:

      猜你喜欢
      • 2018-06-04
      • 1970-01-01
      • 2017-04-05
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多