Estoy tratando de implementar este patrón de navegación cuando haces clic en un botón y luego te lleva a un nuevo conjunto de pantallas y luego vuelve justo al principio, algo como esto:
parentScreen => child 1 => child 2 => parentScreen (otra vez).
Sin embargo, tengo problemas para almacenar parámetros de ruta provenientes de "niño 2" en "parentScreen" usando el objeto de ruta de navegación nativa de reacción
aquí está el código de parentScreen:
useEffect(() => { axios .get(`${baseUrl}/utilities/Entretien?id=1`) .then((response) => { setDataFromAPI(response.data) }) .catch((error) => { console.log(error) }) }, []) // storing route.params.params inside recap state //route.params example: /* Object { "merge": true, "name": "child 2", "params": Object { "id": 20, "name": "create", "parent": "wheel", }, } */ useEffect(() => { console.log('this is route: ', route.params) const newRecap = route.params?.params if (route.params?.params !== undefined) setRecap((prev) => [...prev, newRecap]) console.log('recap', recap) }, [route.params])así es como se pasan los parámetros a la pantalla principal
let { id, baseUrl, parent } = route.params const [selectedId, setSelectedId] = React.useState(null) const [dataFromAPI, setDataFromAPI] = React.useState([]) React.useEffect(() => { axios .get(`${baseUrl}/utilities/Entretien?id=${id}`) .then((response) => { setDataFromAPI(response.data) }) .catch((error) => { console.log(error) }) }, []) const renderItem = ({ item }) => { return ( <Item item={item} onPress={() => { navigation.navigate({ name: 'Entretien', params: { id: item.id, name: item.value, parent, }, merge: true, }) }} /> ) } return ( <View> <FlatList data={dataFromAPI} renderItem={renderItem} keyExtractor={(item) => item.id} extraData={selectedId} /> </View> )el problema es que cuando registro el estado de resumen, obtengo una matriz vacía incluso después de navegar por las pantallas secundarias, es hasta que vuelvo a renderizar (guardo el archivo una vez más) que el estado de resumen coincide con route.params, y si vuelvo a -renderizar de nuevo, la matriz de recapitulación contendrá dos de los objetos route.params.
¿Alguna idea sobre cómo puedo solucionar esto? Gracias (para cualquier explicación, deja un comentario 😁) (react 17.0.2, react-navigation 6, expo 45, react-native 0.68.2)