Me he referido a la documentación oficial de react native ( https://reactnavigation.org/docs/params ). En la que observé que están pasando los datos estáticos entre pantallas. Pero quiero pasar datos tomados del usuario. Si alguien sabe cómo compartir datos, por favor ayuda. También tomé la ayuda de la API de contexto, pero no pude pasar los datos. Cualquier fuente o material también será útil.
Su problema puede estar relacionado con su entrada. Parece que no está capturando sus entradas en una variable de estado.
Consulte este ejemplo de la entrada de ReactNative: https://reactnative.dev/docs/0.65/textinput
import React from "react"; import { SafeAreaView, StyleSheet, TextInput } from "react-native"; const Screen1 = () => { const [text, onChangeText] = React.useState("Hello world"); return ( <SafeAreaView> <TextInput style={styles.input} onChangeText={onChangeText} value={text} /> </SafeAreaView> ); }; const styles = StyleSheet.create({ input: { height: 40, margin: 12, borderWidth: 1, padding: 10, }, }); export default Screen1;Entonces podrías usar navegar:
navigation.navigate('Details', { param1: text, });En la otra pantalla se podía leer el param1 así:
route.params.param1no olvides
No olvides pasar ruta como parámetro en fuction( {ruta) }{ ... }
Echa un vistazo a este fragmento de código.
React.useEffect(() => { if (route.params?.post) { // Post updated, do something with `route.params.post` // For example, send the post to the server } }, [route.params?.post]); return ( <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}> <Button title="Create post" onPress={() => navigation.navigate('CreatePost')} /> <Text style={{ margin: 10 }}>Post: {route.params?.post}</Text> </View> ); } function CreatePostScreen({ navigation, route }) { const [postText, setPostText] = React.useState(''); return ( <> <TextInput multiline placeholder="What's on your mind?" style={{ height: 200, padding: 10, backgroundColor: 'white' }} value={postText} onChangeText={setPostText} /> <Button title="Done" onPress={() => { // Pass and merge params back to home screen navigation.navigate({ name: 'Home', params: { post: postText }, merge: true, }); }} /> </> ); }pasar un param a una pantalla
navigation.navigate('screenName', { paramName: 'valueYouwantToPass', });porque mencionaste la API de contexto, prueba
Almacenamiento asíncrono
import {AsyncStorage} from 'react-native';o
Emisor de eventos del dispositivo
import { DeviceEventEmitter} from 'react-native';