开发者问题收集

React.useContext 未定义

2021-08-04
584

我刚刚开始使用 React 中的 useContext 钩子,但无法让它工作。 在文件 App.js 中,我定义了 App 组件中的值:

  const StateValue = React.createContext(null);

然后,我尝试从 useState 传递一个函数,在同一组件的返回段中使用以下代码:

 <StateValue.Provider value={setLogState}>
          {logState === 1 ? (
            <Register setLogState={setLogState} register={register} />
          ) : (
            ""
          )}
          {logState === 2 ? (
            <Login setLogState={setLogState} login={login} />
          ) : (
            ""
          )}
          {logState === 3 ? (
            <List
              color={color}
              historicData={historicData}
              history={history}
              tickersData={tickersData}
              addTicker={addTicker}
              deleteTicker={deleteTicker}
              tickers={tickers}
            />
          ) : (
            ""
          )}
        </StateValue.Provider>

在单独的文件中,名为 list.js,我使用

  let data = React.useContext(StateValue);

获取上下文,但收到错误

src\Components\list.js
  Line 8:31:  'StateValue' is not defined  no-undef    

我参考了本指南: https://reactjs.org/docs/hooks-reference.html#usecontext

似乎传递的值应该是一个对象,但我想传递一个函数。我需要导入它吗?我该如何修复上述错误?

1个回答

您需要做的就是在 App.js 文件中导出 stateValue

export const StateValue = React.createContext(null);

之后您需要将其导入到 List.js 文件中

import { StateValue } from "../../App.js";
Mohammed Ismail
2021-08-04