首页 > 其他分享 >React Native在非组件的地方使用页面跳转(interceptors拦截器处跳转页面)

React Native在非组件的地方使用页面跳转(interceptors拦截器处跳转页面)

时间:2023-11-01 14:33:15浏览次数:35  
标签:拦截器 js RootNavigation navigationRef export 跳转 import 页面

官方文档:https://reactnavigation.org/docs/navigating-without-navigation-prop/

  1. 修改APP.js
import { NavigationContainer } from '@react-navigation/native';
import { navigationRef } from './RootNavigation';

export default function App() {
  return (
    <NavigationContainer ref={navigationRef}>{/* ... */}</NavigationContainer>
  );
}
  1. 定义一个RootNavigation.js文件
// RootNavigation.js

import { createNavigationContainerRef } from '@react-navigation/native';

export const navigationRef = createNavigationContainerRef()

export function navigate(name, params) {
  if (navigationRef.isReady()) {
    navigationRef.navigate(name, params);
  }
}

// add other navigation functions that you need and export them
  1. 在其他地方使用
// any js module
import * as RootNavigation from './path/to/RootNavigation.js';

// ...

RootNavigation.navigate('ChatScreen', { userName: 'Lucy' });

标签:拦截器,js,RootNavigation,navigationRef,export,跳转,import,页面
From: https://www.cnblogs.com/ikuns/p/17803054.html

相关文章

  • vue2 单页面应用兼容 ie & 对象不支持"append"属性或方法
    在平时如果用到vue2但是打开ie测试的时候发现代码没起到预期的效果(作用)的话。就要用到polyfill和browser来对你的vue代码转成es5语法啦。具体用法是:先下载polyfill和browser的js文件然后引入polyfill和browser的js文件1<scriptsrc="./graphic_js/pol......
  • Vue数据更新页面却没有更新的几种情况以及解决方法
    情况一:Vue无法检测实例被创建时不存在于data中的变量原因:由于Vue会在初始化实例时对data中的数据执行getter/setter转化,所以变量必须在data对象上存在才能让Vue将它转换为响应式的。例如: 12345newVue({  data:{},  template:'<div>{{message......
  • React Native 页面调试工具 react-native-vdebug
    yarnaddreact-native-vdebugimportReactfrom'react'import{createNativeStackNavigator}from'@react-navigation/native-stack'import{getRouter}from'./config'import{ErrorBoundary}from'../component/light......
  • 导入个Excel页面直接卡死,该如何解决
    JavaScript是单线程的语言,也就是说同步代码都需要排队去执行,这样就会造成很多问题,就比如:数据量大的excel文件的导入导出,会造成整个页面出现“假卡死”的现象。什么是“假卡死”呢?意思就是页面其实并没有卡死,但是用户做一些操作时,页面并没有及时给到反馈,这就会让用户觉得页面卡死......
  • 如何修改URL而不重新加载页面?
    内容来自DOChttps://q.houxu6.top/?s=如何修改URL而不重新加载页面?有没有办法在不重新加载页面的情况下修改当前页面的URL?如果可能的话,我想访问#哈希之前的部分。我只需要更改域名之后的部分,所以它不像是违反了跨域政策。window.location.href="www.mysite.com/page2.......
  • 使用【注解】加【拦截器】实现权限控制
    前面介绍了使用SpringSecurity进行权限控制,其中一个非常方便的特点就是:可以在类和方法上使用注解,从而实现对资源访问的权限控制。但是SpringSecurity具有一定的学习成本和复杂度,想要灵活驾驭并用好框架并非一件容易的事情,比如跟其它系统进行单点登录集成等等。本篇博客介绍......
  • 【Azure Function App】如何修改Azure函数应用的默认页面呢?
    问题描述当在Azure中创建了一个函数应用(FunctionApp)后,访问默认URL会得到一个默认的页面。是否有办法修改这个默认页面呢?  问题解答在之前的博文中,介绍了修改AppService的默认页面。1:【Azure应用服务】AppService默认页面暴露Tomcat版本信息,存在安全风险 :https://www.cnbl......
  • [-005-]-Python3+Unittest+Selenium Web UI自动化测试之页面滑动
    1.上下滑动a.滑动#滑动至页面底部:js1="window.scrollTo(0,document.body.scrollHeight)"self.driver.execute_script(js1)#滑动至页面顶部:js2="window.scrollTo(0,0)"self.driver.execute_script(js2)c.纵向滚动条通过scrollBy坐标来滚动#纵向滚动条通过scr......
  • 短视频app源码,Flutter组件--搜索页面布局
    短视频app源码,Flutter组件--搜索页面布局 classLayoutDemoextendsStatelessWidget{ constLayoutDemo({Key?key}):super(key:key); @override Widgetbuild(BuildContextcontext){  returnPadding(   padding:constEdgeInsets.all(10),   c......
  • Springboot拦截器的使用
    1.拦截器(Interceptor)在SpringBoot中,拦截器是基于SpringMVC框架的一部分,主要用于对控制器方法进行拦截处理。拦截器是通过实现HandlerInterceptor接口来定义的其中包括三个主要方法:preHandle、postHandle和afterCompletion。1.preHandle方法在进入控制器方法之前执行2.postHan......