Estoy intentando pasar mi función AuthContext de mi archivo App.js a mi login.js .
Mi archivo App.js simplificado al código relevante.
export const UserContext = createContext(); export default function App() { const authContext = useMemo( Function ); const Drawer = createDrawerNavigator(); return ( <NavigationContainer> <UserContext.Provider value={authContext}> <Drawer.Navigator> <> <Drawer.Screen name="Identification" component={Identification} /> </> </Drawer.Navigator> </UserContext.Provider> </NavigationContainer> );Mi archivo de identificación.js que conecta App.js a login.js.
const Identification = () => { const Stack = createStackNavigator(); return ( <Stack.Navigator > <Stack.Screen name="Login" component={Login} options={{headerShown: false, title: "Login"}} /> <Stack.Screen name="Registration" component={Registration} options={{headerShown: false}} /> </Stack.Navigator> ) } export default IdentificationEl código relevante para login.js
import React, { useContext } from 'react' import { UserContext } from '../App.js' const Login = ({navigation}) => { const {signIn} = useContext(UserContext)Al usar React-navigation, no puedo pasar funciones directamente desde mi función App.js a login.js. Intenté usar useContext pero recibí una advertencia de que estaba usando el siguiente ciclo.
Require cycle: App.js -> screens/identification.js -> identification/login.js -> App.jsNo quiero simplemente suprimir la advertencia, pero esta fue la única forma que pude encontrar para pasar AuthContext.
mi pregunta es doble
¿Hay alguna manera de usar Contexto sin tener que importar UserContext desde App.js?
Si no lo hay, ¿hay alguna otra forma en que pueda transmitir una función ya que no puedo utilizar accesorios?
Intenté reaccionar con los parámetros iniciales de navegación, pero no aceptan valores no serializados como funciones.