---
url: /docs/guide/usage/linter/rules/react/void-use-memo.md
---

### 作用

验证 `useMemo()` 回调是否返回值，以及记忆化的结果是否确实被组件或钩子使用。

由 React Compiler 提供支持，该编译器每个文件运行一次，并与其他 React Compiler 规则共享。移植自
`react-hooks/void-use-memo`.

### 为什么这是不好的？

不返回任何内容的 `useMemo` 回调，或其结果从未被使用的回调，并没有记忆化任何内容——它通常只是伪装成其他形式的副作用，而副作用应该放在事件处理程序或 effect 中。

### 示例

此规则的**错误**代码示例：

```jsx
import { useMemo } from "react";
function Component({ a }) {
  useMemo(() => {
    console.log(a); // returns nothing, result unused
  }, [a]);
  return <div>{a}</div>;
}
```

此规则的**正确**代码示例：

```jsx
import { useMemo } from "react";
function Component({ a }) {
  const x = useMemo(() => a + 1, [a]);
  return <div>{x}</div>;
}
```

## 如何使用

## 版本

此规则在 v1.79.0 中添加。

## 参考
