亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

即使一切看起來都正確,UseContext 返回 undefined

即使一切看起來都正確,UseContext 返回 undefined

拉丁的傳說 2022-11-03 15:05:34
我有一個堆棧導航器,它打開一個屏幕,屏幕使用上下文和提供程序,但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);它是未定義的。隨時詢問更多信息
查看完整描述

2 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

SampleContext將您的文件更改為:


import React from 'react';


const SampleContext = React.createContext();


const SampleContextProvider = ({children}) => {

  return (

    <SampleContext.Provider value={{a: 'a', b: 'b'}}>

      {children}

    </SampleContext.Provider>

  );

};


export {SampleContext, SampleContextProvider};


我在提供者值道具中定義了您的默認上下文值,而不是作為createContext.


提供者的 value 屬性會覆蓋在createContext. 這意味著如果您不設置value是否使用提供程序,則默認值將覆蓋為未定義。



查看完整回答
反對 回復 2022-11-03
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

在您的歡迎屏幕中嘗試執行此操作


import {SampleContext} from '../provider/SampleContext';

const {a,b}= useContext(SampleContext);

console.log("contextx=> ", a+' '+b);

我認為解構該值可能會幫助您確認 sampleContext 是否具有上下文值!


查看完整回答
反對 回復 2022-11-03
  • 2 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號