Navigator组件的属性
**1.configureScene**
该属性指定的回调函数被执行时,会收到一个导航路径参数,开发者可以根据导航路径中的各信息来决定场景切换使用的效果。
可能值:
PushFromRight
PushFromLeft
FloatFromRight
FloatFromLeft
FloatFromBottom
FloatFromBottomAndroid
FadeAndroid
HorizontalSwipeJump
HorizontalSwipeJumpFromLeft
VerticalUpSwipeJump
VerticalDownSwipeJump
也可以自定义动画,自定义动画参考:http://yj1438.github.io/2016/08/14/rn_sceneconfigs.html
**2.renderScene**
(1)导航组件必须要提供这个属性。
(2)该属性指定一个回调函数,用来为特定路径实现界面的渲染。
(3)当它被调用时,会提供一个 router 对象(导航路径)和一个 navigator 对象(导航器本身)
**3.onDidFocus onWillFocus**
onDidFocus(当导航组件导入初始场景后,或者每一个新的场景切换完成时,这个回调函数将被调用)
onWillFocus(在导航组件准备进行场景切换前,这个回调函数将被调用)
注意:React Native不建议使用 ,而是鼓励使用 navigationContext.addListener('didfocus/willfocus',callback) 事件监听器来实现相同的功能。
**4.sceneStyle**
style 类型的属性。如果提供了这个属性,指定的样式将被应用到每一个切换的场景中。
**5.initialRoute(启动时加载的路由) 和 initialRouteStack(路由集合)**
这两都是类类型属性,用来在 Navigator 组件初加载时提供导航路径。这两者关系如下:
如果没有向 Navigator 组件提供 initialRoute 属性,就必须要提供 initialRouteStack 属性。
如果提供了 initialRoute 但没有提供 initialRouteStack,React Native 就会生成一个只有 initialRoute 元素的数组作为 initialRouteStack。
如果给 Navigator 组件提供了 initialRouteStack 属性,那么 initialRoute 必须是 initialRouteStack 中的一个元素。
如果提供了 initialRouteStack 但没有提供 initialRoute,那么 initialRouteStack 中的最后一个元素将默认为 initialRoute。
**6.NavigatorBar**
该属性返回一个可以渲染的节点,这个节点可以用作所有界面的通用导航栏。
**7.如果当前组件是由父 Navigator 组件导航而产生的,则可以对其指定 navigator 属性,用来执行组件导航相关操作。**
Navigator 组件的方法
getCurrentRoutes()--用来得到当前的路径列表。
jumpBack()--退回到上一个界面而不卸载当前界面。
jumpForward()--界面路径向前跳一个界面而不卸载当前界面。
jumpTo(route)--跳转到某个界面而不卸载任何界面。
push(route)--导航组件在路径列表最前端添加一个新的界面,并马上跳转到这个界面。
pop()--导航器退回一个界面并卸载原界面。
replace()--导航器将当前界面用一个新的界面替代。
replaceAtIndex(route, index)--使用一个新的界面代替路径列表中的第 index 个界面(下标从 0 开始),但不改变当前显示界面。
replacePrevious(route)--将当前导航路径的上一个界面使用指定的界面替代。
immediatelyResetRouteStack(routeStack)--使用给定的路径列表替换当前的路径列表。
popToRoute(route)--导航器将退回到指定的界面,并在这个过程中将回退过的界面都一一卸载。
popToTop()--导航器会回到界面路径列表中的第一个界面,并且卸载其他所有界面。
popN()--接收一个数值型参数,导航器会退回多个界面并卸载回退的多个界面。