Estaba un poco aburrido de react-js recientemente y quería probar reaccionar nativo, seguí un tutorial en youtube que usaba la navegación de reacción y recibí un error al comienzo de la creación de mi aplicación (mientras creaba mi primer componente en realidad)
Primero recibí un error que decía que las Text strings must be rendered within a <Text> component. pero mi cadena estaba en un componente de texto
Luego traté de hacer un componente que simplemente regresa en vacío <View></View> pero obtuve un error:
variant Violation: View config getter callback for component `div` must be a function (received `undefined`) el error provenía del componente en sí y no del texto
Aquí está mi código:
import { createStackNavigator } from "@react-navigation/stack"; import { NavigationContainer} from "@react-navigation/native"; import { View } from "react-native-web"; const Stack = createStackNavigator(); const Home = () => { return ( <View> <Text>Home</Text> </View> ); }; const App = () => { return ( <NavigationContainer> <Stack.Navigator initialRouteName="Home"> <Stack.Screen name="Home" component={Home} /> </Stack.Navigator> </NavigationContainer> ); }; export default App;En el tutorial que estaba siguiendo, el tipo usó la navegación de reacción 6 pero llamó a la función createStackNavigator ()
En la documentación oficial https://reactnavigation.org/docs/hello-react-navigation usan createNativeStackNavigator en lugar de createStackNavigator (que es para v5), intenté eliminar mis módulos de nodo, instalar el paquete npm correcto, verifiqué las versiones y luego seguí esta documentación pero sigo teniendo los mismos errores
Debería usar createNativeStackNavigator en su lugar, y también necesita importar Text ya que solo tiene View . Asegúrese de importar los componentes de React Native desde 'react-native' en lugar de 'react-native-web'. Al hacer todo esto, se solucionó el problema y ahora puedo ver el texto que se muestra:
import { createNativeStackNavigator } from "@react-navigation/native-stack"; import { NavigationContainer } from "@react-navigation/native"; import { View, Text } from "react-native"; const Stack = createNativeStackNavigator(); const Home = () => { return ( <View> <Text>Home</Text> </View> ); }; const App = () => { return ( <NavigationContainer> <Stack.Navigator initialRouteName="Home"> <Stack.Screen name="Home" component={Home} /> </Stack.Navigator> </NavigationContainer> ); }; export default App;