问题标签 [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.useMemo
我可以将array.map(val) => val
普通数组作为第二个参数传递给React.useMemo()
钩子吗?我从服务器接收一个嵌套对象作为响应,我不能为第二个参数给出这个响应,因为useMemo()
只检查对象的实例,所以我决定映射我的响应并返回子对象的一些属性的数组并将它们传递为的第二个参数的数组useMemo()
。关于这个问题有更好的想法吗?做这样的事可以吗?
reactjs - 哪个参数触发了 React.useMemo 重新计算?
这是我的 React 钩子代码:
我的问题:我如何找出哪些参数发生了[a,b]
变化并导致调用calc_c
编辑:我最终使用了通用版的 skyboyer 优秀答案:
javascript - 在 React 中记忆一个函数
有一个组件接收道具。
props 有一个数组的形状,对于这个数组的每个元素,一个函数将返回一个不同的组件来渲染。
如果道具不会改变,有没有办法记住这个结果?或者有什么更好的写法?
javascript - 由于 useMemo 钩子,返回表的 React 组件抛出错误
我正在尝试构建一个应用程序,该应用程序具有一个主要组件,该组件导入一个选项卡组件,该组件基于选定的选项卡,加载一个组件或另一个组件。
出现问题是因为在该组件中TaskOne
,我使用 useMemo 挂钩来记忆值。
它抛出以下错误:
信息,请阅读 Hooks 规则: https ://reactjs.org/link/rules-of-hooks
这是代码:
我使用headlessui来构建组件。这是Tabs
上面导入的组件MainComponent
:
并且在选项卡上加载的组件:
任何想法如何解决这一问题?
reactjs - 如何在 React 中记忆 Array.map() 中的每个元素?(带使用备忘录)
我有以下元素:
我可以通过以下方式记住它:
现在,假设我有以下代码:
如何记住数组的每个元素,以便在发生更改时仅重新呈现该元素(而不是整个数组)?
javascript - React.useMemo 正在重新渲染数组中的所有项目
我有一个反应组件,它在 useState 中存储一组水果。我有一个过滤水果的记忆函数(visibleFruits)。我将 visibleFruits 映射到 dom。
问题是,当我检查一个水果时,所有可见的水果都会重新渲染。
我期望只有选定的一个重新渲染,因为它是唯一一个正在改变的。
有没有办法让我使用这种模式,但防止所有人在检查时重新渲染?
在现实生活中,visibleFruits useMemo 中有一个复杂的功能。所以我不能简单地在地图之前附加过滤器。
编辑,这里是更新的编辑:
javascript - 为 React 添加对象值到 useMemo 钩子
我正在尝试使用从数据库中提取的数据创建一个反应表组件。从我读过的文档(https://react-table.tanstack.com/docs/quick-start)来看,react-table 库似乎使用 useMemo 挂钩来创建将显示在表格上的数据。但是,我实际上在将数据添加到 useMemo 挂钩时遇到了麻烦,因为我不熟悉它。
我有一个简单的 JS 对象,它保存了我们数据库中发生的每种中断类别的实例计数。获得计数后,我会尝试将其传递给我的 useMemo 实例,但是会返回未定义的“streamCount”的属性。我想我将对象传递给 useMemo 不正确。任何帮助表示赞赏。
reactjs - 如何使用依赖于 webapi 的 useMemo
我调用了一个正常工作的 webapi:
这里 pItem 包含数据现在我有另一个填充的称为 weight(可以由用户更改) 。
所以我需要根据体重变化进行一些计算:
但似乎在 useEffect 之前调用了 PaymentCalculator !
我怎样才能解决这个问题?
javascript - 在 React 应用中更新数据后基于 useMemo() 使用 useSortableData
我已经根据这个例子制作了应用程序
https://codesandbox.io/embed/table-sorting-example-ur2z9?fontsize=14&hidenavigation=1&theme=dark
但我也需要表中的数据更新(添加、删除)
我用
但是数据更新后 useSortableData 函数是对最初添加的数据进行排序 如何使 useSortableData 使用更新的数据?
我试过了
但在这种情况下,我得到
未处理的运行时错误
TypeError:传播不可迭代实例的无效尝试。为了可迭代,非数组对象必须具有 Symbol.iterator 方法。
谢谢