react native不要组件的props实现页面跳转

Posted GHUIJS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react native不要组件的props实现页面跳转相关的知识,希望对你有一定的参考价值。

上一篇写了react native实现通过组件props跳转,但是有的时候我们是不容易拿到组件的props的,那怎么办呢?

封装跳转公共方法

import createNavigationContainerRef from '@react-navigation/native';
import StackActions from '@react-navigation/native';

export const navigationRef = createNavigationContainerRef();

/**
 * 跳转到某个页面
 * @param name  页面name
 * @param params  可选,参数携带
 */
export const to = (name: string, params?: object) => 
  if (navigationRef.isReady()) 
    // @ts-ignore
    navigationRef.navigate(name, params);
  
;

/**
 * 返回
 * @param count  返回几层,不写返回一层
 */
export const back = (count: number = 1) => 
  if (navigationRef.isReady()) 
    navigationRef.dispatch(StackActions.pop(count));
  
;

把方法中定义的navigationRef(根路径App.tsx中)

import React from 'react';
import NavigationContainer from '@react-navigation/native';
import navigationRef from '@/utils/navigation';

const App = () => 
    <NavigationContainer ref=navigationRef>
    </NavigationContainer>
  );
;

export default App;

引入使用

import to from '@/utils/navigation';

<TouchableOpacity
   onPress=() => 
     to('editUserInfo');
   >
   <Text style=styles.editBtn>编辑资料</Text>
 </TouchableOpacity>

参考

https://reactnavigation.org/docs/navigating-without-navigation-prop

以上是关于react native不要组件的props实现页面跳转的主要内容,如果未能解决你的问题,请参考以下文章

react native通过组件props的navigation实现界面跳转

怎么修改react native组件的props

「React Native」子组件Render中props为空报错问题

React Native 系列

React Native移动开发实战-3-实现页面间的数据传递

创建 React Native 组件,通过解构 'props' 参数来呈现组件的标题