【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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值