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()--接收一個數值型參數,導航器會退回多個界面並卸載回退的多個界面。