我有一个堆栈导航器,它打开一个屏幕,屏幕使用上下文和提供程序,但useContext似乎返回未定义。
我们有这个:
<Stack.Navigator>
<Stack.Screen name="preLogin" component={SomeScreen} />
<Stack.Screen name="postLogin" component={SomeScreen2} />
</Stack.Navigator>
在 SomeScreen2 我们有这个:
import React from 'react';
import {SampleContextProvider} from './provider/SampleContext';
import WelcomeScreen from './welcome';
const SomeScreen2Container = ({navigation}) => {
return (
<>
<SampleContextProvider>
<WelcomeScreen navigation={navigation}/>
</SampleContextProvider>
</>
);
};
export default SomeScreen2Container;
示例上下文:
import React from 'react';
const SampleContext = React.createContext({a:"a",b:"b"});
const SampleContextProvider = ({children}) => {
return (
<SampleContext.Provider>
{children}
</SampleContext.Provider>
);
};
export { SampleContext, SampleContextProvider };
在 WelcomeScreen 我正在使用useContext:
import {SampleContext} from '../provider/SampleContext';
const ctx = useContext(SampleContext);
console.log("contextx=>", ctx);
它是未定义的。
随时询问更多信息
千万里不及你
翻阅古今
相关分类