[在我的本机应用程序中使用react-navigation v5和redux时,如何从动作文件触发导航?有什么更好的方法可以做到这一点吗?完成结果后,我想触发到下一个屏幕的导航,但是不能使用useNavigation()。谢谢。
这个问题对您有帮助吗?似乎是某人尝试完成与您的情况类似的场景]
创建对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/