reactjs - 如何修复“预期返回值为 31 位整数”错误反应挂钩
问题描述
我用上下文 api 为有经验的钩子创建了一个计数器,一切正常,但我有一个警告:
警告:calculateChangedBits:预期返回值为 31 位整数。而是收到:未定义
我的背景
export const CountCtx = createContext(0, () => {});
function CountContext() {
const [count, setCount] = useState(0);
return (
<div className="cp1">
<CountCtx.Provider value={[count, setCount]}>
<p>Component where i created the context 'CountCtx'<br/>Counter is {count}</p>
<button onClick={() => setCount(count + 1)}>Increment</button>
<ComponentA/>
</CountCtx.Provider>
</div>
)
}
组分 A
function ComponentA() {
const [count, setCount] = useContext(CountCtx);
return (
<div className="cp2">
<p><b>Component A</b><br/>Counter is {count}</p>
<button onClick={() => setCount(0)}>Reset</button>
<ComponentB/>
</div>
)
}
B组份
function ComponentB() {
const [count, setCount] = useContext(CountCtx);
return (
<div className="cp3">
<p><b>Component B</b><br/>Counter is {count}</p>
<button onClick={() => setCount(count -1)}>Decrement</button>
</div>
)
}
非常感谢我不明白这个警告:-/
解决方案
第二个参数createContext
是未记录的calculateChangedBits
回调函数。
由于提供了无效的回调,这会阻止上下文工作:
export const CountCtx = createContext(0, () => {});
它应该是:
export const CountCtx = createContext(0);
推荐阅读
- vb.net - 如何从文件夹目录 Vb.Net 中获取短路径
- excel - 有什么方法可以自动执行某些查询并将该查询的 O/P 存储在 excel 文件中?
- core-data - 传递核心数据 FetchedResults
用于 SwiftUI 中的预览 - php - Laravel Raw Query 在与原始语句的连接中给出错误
- intake - 如何始终对进气进行必要的预处理/清洁?
- javascript - 如何使用 Puppeteer 解决和定位元素
- java - 如何在 Spring GCP 中订阅多个 Google PubSub 项目?
- c++ - 不断收到 C2664 错误 - 无法将参数从 char[10] 转换为 char
- jupyter-notebook - 在 jupyter 笔记本的单个单元格中渲染多个 altair 图表
- python - 计算时 i **2 与 python 中的 i * i 有何不同?