【发布时间】:2021-07-01 01:58:21
【问题描述】:
我读到,当我们使用 setState 或该函数作为 prop 传递给子组件时,应使用 useCallback 定义 statefull 功能组件中的内部函数。但是调度动作呢?我们还需要在那里使用“useCallback”吗?
import React from "react";
import { logout } from "../../../../actions/auth";
import { useDispatch } from "react-redux";
function Navbar (props) {
...
const dispatch = useDispatch();
const handleClick = () => {
dispatch(logout());
}
return (
<div>
<button onClick={handleClick}>Logout</button>
</div>
)
}
【问题讨论】:
-
不使用
useCallback仍然可以工作,除非您依赖状态或变量的当前值来实现某些目标。 -
如果
handleClick作为道具传递给某个组件,该组件在每次渲染时执行一些计算量很大的功能,您可能希望使用useCallback。useCallback意味着这个子组件的重新渲染不会被handleClick重新创建而触发。这里没有理由使用它。 -
我看不出您需要在代码中的哪个位置调用 useCallback,因为您没有任何变量会影响导致组件重新渲染的组件。
标签: reactjs react-redux usecallback