在 React 应用程序中导入和使用 nano-memoize?
Import and use nano-memoize in react application?
我正在尝试在基于 React 的 Web 应用程序中使用 Nano-memoize,该应用程序还使用 Typescript 和 Webpack。
我遵循了以下步骤:
npm install nano-memoize
- 已将
import * as nanomemoize from 'nano-memoize'
添加到我的源文件中。
- 记忆了一个像
const memoizedFunc = nanomemoize(myFunc)
这样的函数
myFunc
接受两个参数——一个字符串和一个字符串[]。
但是,我没有看到记忆发生,因为 myFunc
中的调试语句正在为相同的参数打印。
这应该如何以正确的方式完成?
Nano-memoize 不对参数进行深度相等比较。传递给 myFunct
的字符串 [] 参数每次都是不同的对象,因此记忆不起作用。
为了解决这个问题,我不得不在 nano-memoize
中使用 lodast.isquals 作为一个选项
const memoizedFunc = nanomemoize(myFunc, {
// deep equals required since one of the parameter is a string array
equals : (x, y) => isequal(x, y),
});
我正在尝试在基于 React 的 Web 应用程序中使用 Nano-memoize,该应用程序还使用 Typescript 和 Webpack。
我遵循了以下步骤:
npm install nano-memoize
- 已将
import * as nanomemoize from 'nano-memoize'
添加到我的源文件中。 - 记忆了一个像
const memoizedFunc = nanomemoize(myFunc)
这样的函数
myFunc
接受两个参数——一个字符串和一个字符串[]。
但是,我没有看到记忆发生,因为 myFunc
中的调试语句正在为相同的参数打印。
这应该如何以正确的方式完成?
Nano-memoize 不对参数进行深度相等比较。传递给 myFunct
的字符串 [] 参数每次都是不同的对象,因此记忆不起作用。
为了解决这个问题,我不得不在 nano-memoize
中使用 lodast.isquals 作为一个选项const memoizedFunc = nanomemoize(myFunc, {
// deep equals required since one of the parameter is a string array
equals : (x, y) => isequal(x, y),
});