【发布时间】:2021-11-07 16:44:50
【问题描述】:
我有时会使用这种模式,在 useCallback 中声明一个柯里化函数。
const Child = ({ handleClick }) => {
return (
<>
<button onClick={handleClick("foo")}>foo</button>
<button onClick={handleClick("lorem")}>lorem</button>
</>
);
};
export default function App() {
const [state, setState] = useState("");
const handleClick = useCallback(
(newState) => () => {
setState(newState);
},
[]
);
return (
<div className="App">
<Child handleClick={handleClick} />
<p>{state}</p>
</div>
);
}
因为我想将参数从 JSX 传递给事件处理程序并避免多个处理程序。
当组件重新渲染时,handleClick 将被调用并将返回的函数分配给 onClick 属性,但它是否每次都是一个新函数或者嵌套函数也会被 @987654327 记忆@?
PS:这是一个简单的例子。假设 useCallback 使用多个依赖项
【问题讨论】:
标签: javascript reactjs memoization