From 54a331d7eff285b87b6865b3ad65a5fea1a86547 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 12 Mar 2021 04:38:34 -0800 Subject: [PATCH] Mention useReducer as a cause of rerender in React.memo (#3576) --- content/docs/reference-react.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/reference-react.md b/content/docs/reference-react.md index 65c513e9..36d6cddf 100644 --- a/content/docs/reference-react.md +++ b/content/docs/reference-react.md @@ -128,7 +128,7 @@ const MyComponent = React.memo(function MyComponent(props) { If your component renders the same result given the same props, you can wrap it in a call to `React.memo` for a performance boost in some cases by memoizing the result. This means that React will skip rendering the component, and reuse the last rendered result. -`React.memo` only checks for prop changes. If your function component wrapped in `React.memo` has a [`useState`](/docs/hooks-state.html) or [`useContext`](/docs/hooks-reference.html#usecontext) Hook in its implementation, it will still rerender when state or context change. +`React.memo` only checks for prop changes. If your function component wrapped in `React.memo` has a [`useState`](/docs/hooks-state.html), [`useReducer`](/docs/hooks-reference.html#usereducer) or [`useContext`](/docs/hooks-reference.html#usecontext) Hook in its implementation, it will still rerender when state or context change. By default it will only shallowly compare complex objects in the props object. If you want control over the comparison, you can also provide a custom comparison function as the second argument.