reactjs - 使用 useContext 时发生“TypeError object undefined”
问题描述
我正在测试useContext
,但我收到一个错误,我不明白如何修复它,应用程序的想法是使用 来制作一个计数器useContext
,每次按下按钮时,计数器都会增加一。
我创建了一个计数器组件:
import { useContext } from "react";
import { CountContext } from "../../context/Count";
export const Counter = () => {
const { count, setCount } = useContext(CountContext);
return (
<h2>Counter: {count}</h2>
// <button
// onClick={() => {
// setCount(count + 1);
// }}
// >
// Count + 1
// </button>
);
};
这是调用以下上下文:
import { createContext, useState } from "react";
export const CountContext = createContext();
export default function CountProvider({ children }) {
const [count, setCount] = useState(0);
return (
<CountContext.Provider value={{ count, setCount }}>
{children}
</CountContext.Provider>
);
}
我不知道是什么导致了错误,我制作了一个代码框来显示问题:https ://codesandbox.io/s/usecontext-error-mwgwt?file=/src/components/counter/index .js
解决方案
您还没有将Counter
组件包装在CountProvider
.
你App.js
应该是这样的:
import { Counter } from "./components/counter";
import CountProvider from "./context/Count";
import "./styles.css";
export default function App() {
return (
<CountProvider>
<Counter />
</CountProvider>
);
}
推荐阅读
- javascript - 为什么 addEventListener 会立即触发?
- laravel - ebextensions 在 AWS Elasticbeanstalk 中不起作用
- sql-server - 转换为 VARBINARY 并返回
- linux - 读取多行输入
- elasticsearch - 如何在弹性搜索中计算数据
- sql - Spark:需要确认捕获第一个和最后一个日期的方法:在数据集上
- javascript - 从 JSON 对象反应动态组件
- windows - 如何使用批处理脚本删除日志文件中字符串中的最后一个字符?
- node.js - Array.prototype.findIndex() 不返回对象的索引
- javascript - JavaScript 从两个长数字构造 UUID