He estado tratando de pasar datos de mi pantalla home.js a mi pantalla de comerciante.js usando navigation.navigate('Merchant', store ) pero cuando trato de usar route.params no estoy definido.
Aquí está mi casa.js
export default function Home( { navigation }) { ... {storeData.map(store => { return ( <View> <TouchableOpacity> <Text style={styles.categoryName} onPress={() => {navigation.navigate('Merchant', store)}}> {store.name} </Text> </TouchableOpacity>Comerciante.js
function Merchant({ navigation, route }) { console.log(route); ... }Producción:
{"clave": "Comerciante-86K9u5ytF32VGMRcO9s2g", "nombre": "Comerciante", "parámetros": indefinido}
Una vez más, no tengo ni idea de lo que está pasando. Probé con navigation.push(), probé con navegar('Merchant', {name: store.name}) pero sigo sin definir.
Si desea pegar más código con mi navegación de pila, puedo hacerlo.
¿Has probado esto?
navigation.navigate('Merchant', store)Acceda al valor por:
navigation.getParam('onePropertyOfStoreHere');Muy bien, entonces me di cuenta de por qué no estaba definido. Fue porque tenía otra pila que comenzaba con Merchant.js en la parte superior.
<Stack.Navigator initialRouteName="Merchant" headerShown='false'> <Stack.Screen name="Merchant" component={Merchant} /> <Stack.Screen name="ProductInfo" component={ProductInfo}/> </Stack.Navigator>Esto debe haber confundido la aplicación cuando me movía de la pantalla de inicio a la del comerciante, pero pasó a otra pila.