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

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

React.useContext() 不斷返回未定義?

React.useContext() 不斷返回未定義?

RISEBY 2022-08-18 10:23:35
我使用Next.js和React,使用react hooks +context來管理狀態。但是,我遇到了這個問題,即使我在上下文對象中傳遞,返回值也未定義(或者我認為是這樣)。我是否錯過了一些非常明顯的東西?發生了什么事情?React.useContext()我已經在一個名為 CartContext 的 const 中創建上下文,然后在我的提供程序組件中,我創建了值對象并將其作為 prop 傳遞給 CartContext.Provider(請參閱下面的 )。我確保上下文提供程序通過添加一個元素來包裝我的組件,只是為了確保這一點。_app.js<h1>問題似乎出現在 中。我已經從中導入了CartContext,然后將其作為參數傳遞給我應該做的,但它不斷拋出這個錯誤:index.js./_app.jsuseContext()“TypeError:無法取消結構屬性'react__WEBPACK_IMPORTED_MODULE_0___default.a.useContext(...)'的第一個樣本',因為它是未定義的”從我收集到的信息中告訴我,useContext() 返回未定義。_app.js(換行所有頁面)import React from 'react'import '../styles/global.css';import theme from '../components/customTheme';import { ThemeProvider } from '@material-ui/core/styles';const MyApp = props => {  const { Component, pageProps, store } = props  return (    <ContextProvider>      <ThemeProvider theme={theme}>        <Component {...pageProps} />      </ThemeProvider>    </ContextProvider>  )}// Context export const CartContext = React.createContext()function ContextProvider({ children }) {  const value = {    firstSample: "Test",    exampleFunction: () => {alert("Hello World")},  }  return (    <CartContext.Provider value={value}>      <h1>The provider works</h1>      {children}    </CartContext.Provider>  )}export default MyApp;
查看完整描述

3 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

好吧,所以這是一個非常簡單的錯誤,我導入了,當它應該用大括號時,因為它不是默認的導出。因此,更正后的(功能性)代碼很簡單:CartContextindex.jsimport cartContex from _app.jsimport { cartContext } from _app.js



查看完整回答
反對 回復 2022-08-18
?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

嘗試像這樣導入:

import { CartContext } from './_app';


查看完整回答
反對 回復 2022-08-18
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

你的代碼有一些問題,我不明白你為什么堅持使用組件。createContext<MyApp />

問題:

  • 在你正在做的組件中,我相信這是不可能的。MyAppexport default MyAppexport CartContext

  • 你沒有,也許這就是返回的原因。請參閱文檔中的示例createContextdefaultValueundefined

我相信通過進行這些更改,您的代碼應該可以正常工作,或者至少您可以隨著問題的發展而發展。

幫助代碼和框會更容易。


查看完整回答
反對 回復 2022-08-18
  • 3 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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