问题标签 [react-usememo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在 React 中创建和销毁一个东西的最佳方法是一次?(usestate 中未使用的设置器可以吗?)
我有一个巨大的游戏对象,它在渲染时附加到画布上。我想在创建组件时只创建一次,直到组件被销毁才删除它。
(如果游戏是定期创建和销毁的,那么用户将失去他们的游戏状态。假设我不想编辑游戏以将存储放入Context
或Redux
或其他东西中,并希望保持游戏原样..)
我看到至少三种方法可以做到这一点:
有什么问题Game1
吗?有没有第四种更好的方法来创建和销毁状态一次?
reactjs - 使用 useMemo() 解决表中的依赖问题
我有一个表组件,它使用对象中定义的列来呈现。我试图用它useMemo
来记忆列,因为只要行中的表数据发生变化,它们就不会改变。
这会引发警告:React Hook useMemo does nothing when called with only one argument. Did you forget to pass an array of dependencies? react-hooks/exhaustive-deps
. 我该如何解决这个警告;我在这里做错了什么?
javascript - 在反应中使用'useMemo'时仅在数组中显示匹配的字符串
我有一个自动完成输入字段,并且在最初将输出隐藏在我的数组中时遇到了问题。而不是在安装时显示我的所有项目,我只想显示匹配的字符串。让我的状态为空const [filteredRecipes, setFilteredRecipes] = useState();
会在我的循环中引发错误。
Codesanbox: https ://codesandbox.io/s/quzwg?file=/App.js:251-313
JS:
reactjs - 反应,让 UseMemo 与文本框一起正常工作
以下 UseMemo 不起作用。我正在尝试记住数字值的平方 X^2。我输入 3,计算数据,然后输入 4,然后再输入 3。每次都会重新计算。我怎样才能解决这个问题?
reactjs - useEffect、useCallback、useMemo的依赖数组
我对 React Hooks 的依赖性感到很困惑。这是示例:
在 React 纪录片中:
笔记
依赖数组不作为参数传递给函数。但是,从概念上讲,这就是它们所代表的含义:函数内引用的每个值也应该出现在依赖项数组中。将来,一个足够先进的编译器可以自动创建这个数组。
count
并且setCount
都在useMemo的回调中,如果我没有传入setCount
依赖数组,eslint不会警告我,但是count
会,那么有什么区别?为什么不需要通过setCount
?setCount
在 useMemo 里面,不是吗?
这是codeandbox链接:
https://codesandbox.io/s/react-codesandbox-forked-xfupk?file=/src/Demo1/index.js:254-363
我想我可能误解了文件。哪位大神指点一下,谢谢
reactjs - useContext 触发重新渲染而不进行更改
我有以下react
组件:
为了避免不必要的重新渲染,我将memo
其定义如下:
该组件在Stepper
-Component 中提供服务:
不幸的是,无论状态是否实际改变,useEffect()
每次Emissions
-component 返回时都会触发 API 调用。getStepContent()
知道如何useEffect()
仅在electricityValues
-array 的值更改时触发吗?
是因为useContext()
每次都返回一个新的引用吗?
javascript - 反应如何有条件地使用 useMemo
我仍然对 React 钩子有所了解,并试图useMemo
根据不同的因素有条件地使用。
我的 useMemo 部分看起来像这样
但是我想headers
根据选择的语言来更改,所以我尝试使用 `if 语句,但这不起作用
reactjs - useMemo 计算量大的计算
我使用 useMemo 创建了一个沙箱来优化模拟昂贵的函数,遵循这篇文章中的 Kent C Dodds 示例。记忆似乎不起作用。任何想法为什么?
reactjs - 如何记忆自定义钩子以提高性能
具有以下功能,这是常见的自定义钩子并从多个地方调用。
如何记住这一点以提高性能。(虽然在浏览器上调试然后观察到它被多次调用)。如果fields.forEach
只记住而不是自定义挂钩下的所有代码,那也很好
我试图在钩子内添加一个函数,但是我需要返回result
对象而不是函数。
///// 组件调用如下
//这里可以memoize吗?所以不需要在自定义钩子中记忆。
reactjs - 当来自 Apollo useQuery 挂钩的“数据”返回 useMemo 所依赖的“数据”的新值时,useMemo 未运行
我有一个使用 useQuery Apollo Hook 从 GraphQL API 获取数据的组件。该组件还有一个 useMemo,它具有从 useQuery Apollo 挂钩返回的数据变量作为依赖项。useMemo 最初在组件的第一次渲染上运行,因为它应该。然后,当来自 useQuery 的数据返回时,它再次运行。我通过对 useQuery 中的数据变量进行一些更改来跟进这一点。
现在,当我在另一个选项卡中重新渲染此组件时,useQuery 在初始渲染时运行一次,这是应该的,但当来自 useQuery 的数据返回时不会再次运行。注意:我在上一个选项卡中修改了 useMemo 中的数据变量,graphql api 返回了一个新的数据值,所以 useMemo 应该能够发现它,但不知何故它没有。
经我调查可能的原因:
- 如果“数据”变量处于函数状态,useMemo 只会在第二个选项卡中第二次运行,并且当来自 useQuery 的新数据返回并且 useQuery 重新渲染组件时不会运行,因为它对组件不可见改变。
任何帮助,将不胜感激。谢谢!