之前在 react_native_router_flux_使用详解(一)中根据官网的描述内容做了简单的理解,接下来我们将进一步学习。
1、简单用例
import React, { Component } from 'react';
import { Router, Scene } from 'react-native-router-flux';
import PageOne from './PageOne';
import PageTwo from './PageTwo';
export default class App extends Component {
render() {
return (
)
}
}
如上,创建两个页面分别为 PageOne、PageTwo。
每一个 Scene component 有如下属性:
key:一个唯一的字符串,用来标识一个 Scene,可以理解为 scene 的一个身份牌号码,就像你身份证号码一样,必须是唯一的。
component:当切换到该 scene 时,component 属性引用的组件将被渲染出来。
title:当切换到对应的 scene 时,屏幕顶部的导航条中间将显示该 title。
在 pageOne 中多处一个属性 initial={true},用该属性表示 pageOne 表示 pageOne 会默认为初始化 scene,类似编程中的默认值。什么都不操作的时候,将展示该 scene。
PageOne.js
import React, { Component } from 'react';
import { View, Text } from 'react-native';
import { Actions } from 'react-native-router-flux';
export default class PageOne extends Component {
render() {
return (
This is PageOne!
)
}
}
如上所示,在 pageOne 中有一个 Text 组件,当点击的时候处罚 onPress 方法,该方法将调用 Actions.pageTwo,我们在 http://cherylgood.cn/c/react_native_router_flux_使用详解一.php 篇中有介绍 Actions,通过 Actions 来控制 Router 来对 scene 进行操作。
这里当点击的时候,会调用 Actions.SCENE_KEY(PARAMS) ,SCENE_KEY 即为之前定义的 key 值,参数为可选的,我们在 http://cherylgood.cn/c/react_native_router_flux_使用详解一.php 也有做说明。我们的 Actions 就会通知 Router,你把 key=pageTwo 的 Scene 显示出来,如果传有参数的话,参数也会传入 Scene 组件中。
render() {
const goToPageTwo = () => Actions.pageTwo({text: 'Hello World!'});
return (
This is PageOne!
)
}
如官方示例所示,我们传递一个参数名为 text 。值为 Hello World!如下所示,我们就可以在 key=pageTwo 的 scene 的 component 属性置顶的组件中通过 props 获取该参数值。
render() {
return (
This is PageTwo!
{this.props.text}
)
}
我们从 pageOne 跳转到了 pageTwo,如果我们想跳回 pageOne 怎么办呢。
官方提供的导航栏早已提供了一个 back icon,我们也可以通过调用 Actions.pop()方法将当前 scene 弹出栈,我们的 pageOne 就在栈顶了,此时显示的就是 pageOne 了,如果跳回来后我们需要刷新当前 scene,我们可以调用 Actions.refresh(PARAMS)
我们将在第三篇中对详细介绍 router-flux 使用过程中用到的 api
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于