在 React 中将回调指定为另一个回调的依赖项是否重要?

时间:2021-05-25 11:08:27

标签: javascript reactjs react-native

这是我的钩子。


export function useContractFactory() {
  const { provider }: any = useWallet();

  return useCallback(
    (address: string, abi: any) => {
      return new EthersContract(address, abi, provider);
    },
    [provider],
  );
}

export function useTokenActions() {
  const createContract = useContractFactory();

  const isERC20 = useCallback(async (address: string) => {
    const contract = createContract(address, erc20TokenABI);

    return isTokenERC20(contract);
  }, []);
  
  return {
    isERC20
  } 
}
如您所见,

createContract 是一个 callback。现在,TypeScript 和 ESLint 编译时出现警告。

<块引用>

React Hook useCallback 缺少依赖项:'createContract'。 要么包含它要么删除依赖数组

我是否应该指定 createContract 作为 isERC20 回调的依赖项?或者根本不需要callback?你怎么看?

1 个答案:

答案 0 :(得分:1)

我认为您应该将 createContract 添加到 dep 数组。 基于此React Documentation

<块引用>

useCallback 将返回一个记忆化的回调版本,该版本仅在依赖项之一发生更改时才会更改

不改变没关系但回调本身会考虑

相关问题