[Day08 - React Native] 路由,使用 React Native Navigation

React Navigation 在这边使用 Wix/React Native Navigation搭配 Wix/React Native Navigation Hooks。可以参考官方文件。

Installation

输入以下指令

yarn add react-native-navigation

iOS 需要执行 npx pod-install

注册 Screen

利用 setRoot 来注册画面:

第一步要先注册画面:

Navigation.registerComponent(
    'HOME_SCREEN', // componentName
    () => reduxWrapper(HomeScreen), // componentProvider
    () => HomeScreen, // concreteComponentProvider (optional)
  )
);

上方的 component provider reduxWrapper 里面长这样:

const reduxWrapper = (Component) => (props) => {
    return (
        <Provider store={store}>
            <Component {...props} />
        </Provider>
    )
}

接下来注册 Root

const basicRoot = () =>
Navigation.setRoot({
    root: {
        stack: {
          children: [
            {
              component: {
                name: 'LOGIN_SCREEN'
              }
            }
          ]
        }
    }
});

最後在 APP.js 里面加入 basicRoot 即可

Navigation.events().registerAppLaunchedListener(() => {
  basicRoot();
}

切换页面

当你想要将画面移动到下一个页面的时候,利用 push 的方式往前推进,当你想要往回的时候,使用 pop 往後移动。范例如下:

import { useNavigation } from 'react-native-navigation-hooks'

const { push, pop } = useNavigation();

push('PAHT_NAME', { ...passProps });

pop() // 这边就会回到上一页

<<:  [ Day 8 ] - 回圈

>>:  【Day 08】- 见鬼了(っ °Д °;)っ我明明没有启动这支程序…

Day5 资料储存 - file storage优缺点及场景

优缺点 优点 File storage最大的优点就是他对人类友好,有目录结构、好记得名字等等,方便U...

D-05-串接API ? RestSharp

串接API 相信很多时候开发程序不是只有自己开发就可以了,不论是公司外还是公司内部都有打Api的需求...

EP02 - 配置本机虚拟机械并安装 AWS-CLI

行前准备 乾净或可任意变更的 AWS Account Virtualbox Vagrant 时常 w...

D07 / 怎麽显示大量资料 - Lazy composables ( LazyColumn & StickyHeader )

今天大概会聊到的范围 LazyColumn StickyHeader 基本的画面可以显示了,但在 ...

Day01 前言

前言 第二次参加铁人赛,在决定参赛时,就又让人想起连续30天不间断发文的痛苦,但是要用什麽主题来做为...