react navigation會在所有註冊路由頁面的props裡面注入navigation,其使用方法:1、透過「const Main = createStackNavigator({...})」方式建立主路由;2、透過「createBottomTabNavigator 」建立底部標籤欄;3、透過「createSwitchNavigator」建立特殊switch路由等。
本教學操作環境:Windows10系統、react18.0.0版、Dell G3電腦。
react navigation方法怎麼用?
react-navigation 常用方法
react-navigation是rn專案使用路由管理員;除了提供路由history管理,還有導航器的ui元件! ;
react-navigation會在所有註冊路由頁面的props裡面注入navigation!!!
1.建立主路由;
createStackNavigator
其中包含專案中所使用的基本所有的頁面路由;
const Main = createStackNavigator({ Tab: { screen: Tab, navigationOptions:{ header:null } } 。。。 },{ initialRouteName :'Tab', })
2.建立底部標籤欄;
createBottomTabNavigator
即app首頁底部的幾個tab分頁
const Tab = createBottomTabNavigator({ Home: { screen: Home, navigationOptions:{ header:null, title:'最热', tabBarIcon:({focused,tintColor})=>{ return ( <MCIcon name="chili-hot" size={16} color = {focused?tintColor:'#404040'}></MCIcon> ) } } }, 。。。 },{ initialRouteName :'Home', tabBarOptions:{ activeTintColor:'#1d85d0' } })
3.建立特殊switch路由;跳轉之前的頁面將不會進入 history堆疊;
createSwitchNavigator //欢迎页跳转不可返回 const Navigation = createSwitchNavigator({ Init:Init, Main:Main },{ initialRouteName :'Init' })
4. 建立頂部tab頁標籤,會佔用導覽列位置
createMaterialTopTabNavigator export default class Home extends Component { render() { const TabNav = createMaterialTopTabNavigator({ Tab1:{ screen: Tab1, navigationOptions:{ title:'tab1', header:null } } 。。。 },{。。。}) return ( <TabNav/> ) } }
5.navigationOptions常用的設定屬性
headerTtile: 頁面標題
headerTitleStyle: 標題文字的樣式
##headerStyle:標題整塊的樣式6 .tab部分的參考屬性tabBarOptions - 具有以下属性的对象: activeTintColor -活动选项卡的标签和图标颜色。 activeBackgroundColor -活动选项卡的背景色。 inactiveTintColor -"非活动" 选项卡的标签和图标颜色。 inactiveBackgroundColor -非活动选项卡的背景色。 showLabel -是否显示选项卡的标签, 默认值为 true。 showIcon - 是否显示 Tab 的图标,默认为false。 style -选项卡栏的样式对象。 labelStyle -选项卡标签的样式对象。 tabStyle -选项卡的样式对象。 allowFontScaling -无论标签字体是否应缩放以尊重文字大小可访问性设置,默认值都是 true。 safeAreaInset - 为 <SafeAreaView> 组件重写 forceInset prop, 默认值:{ bottom: 'always', top: 'never' }; top | bottom | left | right 的可选值有: 'always' | 'never'。BottomTabBar元件也可以草考這個屬性#7.製作回傳功能通常我們在需要回傳的頁面上使用this.props .navigation 取得到navigation 的props物件;可以使用
this.props.navigation.goBack()來回傳頁面;但是這樣做的前提是this.props.navgation必須是目前頁面的navigation;即可以查看this .props.navigation.state.routeName 來判斷:某些特殊的情況下,例如安卓返回鍵的返回判斷有可能返回事件不是在該頁面捕獲,因為回退事件BackHandler是會向上傳遞的; 那麼this.props.navigation可能就不是需要回退的壓面的navigation對象了;所以已使用go.Back()是不會成功的;或者有些情況下naviagtion對像不一定有goBack()方法也會造成這個問題;例如;home頁面是一級路由,detail頁面是二級路由,兩個頁面都設定了BackHandler的回呼函數;若detai裡面的BackHandler沒有被目前頁面捕捉到的話就會傳遞給home裡面的BackHandler回呼函數;那麼在home裡的this.props.navigation就是指的home頁面的,而不是detail,所以呼叫goBack也不會成功! ! !
解決方法:
使用NavigationActions ;所有NavigationActions傳回可以使用navigation.dispatch()方法傳送到路由器的物件。 支援以下操作:Navigate - 導航到另一條路由Back - 回到先前的狀態Set Params - 設定給定路由的參數Init - 用於在狀態未定義時初始化第一個狀態具體看文件:https://reactnavigation.org/docs/zh-Hans/navigation-actions.html 透過:dispatch(NavigationActions.back());就可以實施回傳操作了;注意:dispatch()方法是在this.props.navigation裡面的推薦學習:《
react影片教學》
以上是react navigation方法怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

useState()isaReacthookusedtomanagestateinfunctionalcomponents.1)Itinitializesandupdatesstate,2)shouldbecalledatthetoplevelofcomponents,3)canleadto'stalestate'ifnotusedcorrectly,and4)performancecanbeoptimizedusinguseCallbackandproperstateupdates.

ReactispupularduetoItsOmpontement,基於虛擬,虛擬詞,Richecosystem和declarativedation.1)基於組件的harchitectureallowslowsforreusableuipieces。

todebugreactapplicationsefectefectionfection,usethestertate:1)proppropdrillingwithcontextapiorredux.2)使用babortControllerToptopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRaceeDitions.3)intleleassynChronOusOperations.3)

usestate()inrectallowsStateMagementionInfunctionalComponents.1)ITSIMPLIFIESSTATEMAGEMENT,MACHECODEMORECONCONCISE.2)usetheprevcountfunctionToupdateStateBasedonitspReviousViousViousvalue,deveingingStaleStateissues.3)

selectUsestate()forsimple,獨立的variables; useusereducer()forcomplexstateLogicorWhenStatedIppedsonPreviousState.1)usestate()isidealForsImpleupDatesLikeToggGlikGlingaBglingAboolAboolAupDatingacount.2

useState優於類組件和其它狀態管理方案,因為它簡化了狀態管理,使代碼更清晰、更易讀,並與React的聲明性本質一致。 1)useState允許在函數組件中直接聲明狀態變量,2)它通過鉤子機制在重新渲染間記住狀態,3)使用useState可以利用React的優化如備忘錄化,提升性能,4)但需注意只能在組件頂層或自定義鉤子中調用,避免在循環、條件或嵌套函數中使用。

useUsestate()forlocalComponentStateMangementighatighation; 1)usestate()isidealforsimple,localforsimple.2)useglobalstate.2)useglobalstateSolutionsLikErcontExtforsharedState.3)

ReusableComponentsInrectenHanceCodainainability and效率byallowingDevelostEsteSeTheseTheseThesAmeCompOntionActActRossDifferentPartSofanApplicationorprojects.1)heSredunceRedUndenceNandSimplifyUpdates.2)yensureconsistencyInuserexperience.3)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境