名詞表
這是文件中的新章節,其中缺少很多名詞!請提交拉取請求或議題,提供您認為應在此處說明的名詞。
導航器
Navigator
是 React 元件,用於決定如何呈現您定義的畫面。它包含Screen
元素作為其子元素,用於定義畫面的組態。
NavigationContainer
是一個元件,用於管理我們的導航樹狀結構,並包含導航狀態。此元件必須包裝所有導航器結構。通常,我們會在應用程式的根目錄中呈現此元件,通常是從App.js
匯出的元件。
function App() {
return (
<NavigationContainer>
<Stack.Navigator> // <---- This is a Navigator
<Stack.Screen name="Home" component={HomeScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
路由器
路由器是一組函式,用於決定如何在瀏覽器中處理動作和狀態變更 (類似於 Redux 應用程式中的狀態降低函式)。通常,不需要與路由器直接互動,除非正在撰寫自訂瀏覽器。
畫面元件
畫面元件是在路線組態中使用的元件。
const Stack = createNativeStackNavigator();
const StackNavigator = (
<Stack.Navigator>
<Stack.Screen
name="Home"
component={HomeScreen} // <----
/>
<Stack.Screen
name="Details"
component={DetailsScreen} // <----
/>
</Stack.Navigator>
);
元件名稱中的字尾Screen
完全是可選的,但經常使用慣例;我們可以稱之為Michael
,這也可以正常運作。
我們之前發現,畫面元件會提供navigation
屬性。需要注意的是,這只有在畫面由 React Navigation 繪製為路線時才會發生 (例如,回應navigation.navigate
)。例如,如果我們將DetailsScreen
繪製為HomeScreen
的子項,則 DetailsScreen
就不會提供navigation
屬性,當您按下主畫面上的「再次前往詳細資訊...」按鈕時,應用程式將執行一個經典的 JavaScript 例外狀況「未定義不是物件」。
function HomeScreen() {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Home Screen</Text>
<Button
title="Go to Details"
onPress={() => navigation.navigate('Details')}
/>
<DetailsScreen />
</View>
);
}
"瀏覽屬性參考" 一節進一步說明了這項內容,說明了因應措施,並針對navigation
屬性提供的其他內容提供更多資訊。
瀏覽屬性
此屬性將傳送至所有畫面,它可以用於下列事項
dispatch
會將動作傳送至路由器navigate
、goBack
等可供以便利的方式傳送動作
瀏覽器也可以接受瀏覽屬性,如果有的話,則應從父瀏覽器取得。
有關更多詳情,請參閱"瀏覽屬性文件"。
"路線屬性參考" 一節進一步說明了這項內容,說明了因應措施,並針對route
屬性提供的其他內容提供更多資訊。
路線屬性
此屬性將傳送至所有畫面。包含關於目前路線的資訊,例如params
、key
和name
。
瀏覽狀態
瀏覽器的狀態通常如下所示
{
key: 'StackRouterRoot',
index: 1,
routes: [
{ key: 'A', name: 'Home' },
{ key: 'B', name: 'Profile' },
]
}
針對這個瀏覽狀態,有兩個路線 (可能是分頁或堆疊中的卡片)。索引指示「B」的「活動路線」。
可以在這裡閱讀更多關於瀏覽狀態的資訊。
路徑
每個路徑都是包含一個金鑰來識別它,和一個「名稱」來指定路徑類型的物件。它也可以包含任意參數
{
key: 'B',
name: 'Profile',
params: { id: '123' }
}
標題
也稱為導覽標題、導覽欄、應用程式欄,以及其他許多名稱。這是螢幕頂端包含返回按鈕和螢幕標題的矩形。在 React 導覽中,整個矩形通常稱為標題。