第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React 堆棧導航,如何在沒有路由的情況下傳遞狀態(tài)

React 堆棧導航,如何在沒有路由的情況下傳遞狀態(tài)

BIG陽 2023-09-21 17:33:39
我有四個組件 A、B、C、D。每個組件都有其本地狀態(tài)。這些是使用反應堆棧導航堆疊的現(xiàn)在我想將 A、B 和 C 中的每個本地狀態(tài)傳遞給最后一個組件 D。我不需要給出路線。我已經(jīng)有了使用 prop.navigation.navigate 的 onPress 路線,它帶我從 A 到 B 到 C 到 D。我只需要將A的狀態(tài)直接傳遞給D,B傳遞給D,C傳遞給D?
查看完整描述

1 回答

?
慕森卡

TA貢獻1806條經(jīng)驗 獲得超8個贊

以下是如何將狀態(tài)從 A、B、C 傳遞到 D。您只需在導航到下一個 Screen 路由時將父級的狀態(tài)作為參數(shù)傳遞給下一個 Screen 路由,然后您就可以借助以下命令訪問這些參數(shù)route。


import React, { useState } from 'react';

import { Button, View, Text } from 'react-native';

import { NavigationContainer } from '@react-navigation/native';

import { createStackNavigator } from '@react-navigation/stack';


function A({ navigation }) {

? const [fromA, setFromA] = useState('From A');

? return (

? ? <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>

? ? ? <Text>A Screen</Text>

? ? ? <Button

? ? ? ? title="Go to B"

? ? ? ? onPress={() => navigation.navigate('B', { fromA: fromA })}

? ? ? />

? ? </View>

? );

}


function B({ navigation, route }) {

? const [fromB, setFromB] = useState('From B');

? const { fromA } = route.params;

? return (

? ? <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>

? ? ? <Text>A Screen</Text>

? ? ? <Button

? ? ? ? title="Go to C"

? ? ? ? onPress={() => navigation.navigate('C', { fromA: fromA, fromB: fromB })}

? ? ? />

? ? </View>

? );

}


function C({ navigation, route }) {

? const [fromC, setFromC] = useState('From C');

? const { fromA, fromB } = route.params;

? return (

? ? <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>

? ? ? <Text>A Screen</Text>

? ? ? <Button

? ? ? ? title="Go to D"

? ? ? ? onPress={() =>

? ? ? ? ? navigation.navigate('D', { fromA: fromA, fromB: fromB, fromC: fromC })

? ? ? ? }

? ? ? />

? ? </View>

? );

}


function D({ navigation, route }) {

? const { fromA, fromB, fromC } = route.params;

? return (

? ? <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>

? ? ? <Text>D Screen</Text>

? ? ? <Text>From Screen A: {fromA}</Text>

? ? ? <Text>From Screen B: {fromB}</Text>

? ? ? <Text>From Screen C: {fromC}</Text>

? ? </View>

? );

}

const Stack = createStackNavigator();


function App() {

? return (

? ? <NavigationContainer>

? ? ? <Stack.Navigator initialRouteName="A">

? ? ? ? <Stack.Screen name="A" component={A} />

? ? ? ? <Stack.Screen name="B" component={B} />

? ? ? ? <Stack.Screen name="C" component={C} />

? ? ? ? <Stack.Screen name="D" component={D} />

? ? ? </Stack.Navigator>

? ? </NavigationContainer>

? );

}


export default App;

查看完整回答
反對 回復 2023-09-21
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號