Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将回调指定为另一个回调';什么是反应中的依赖?_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 将回调指定为另一个回调';什么是反应中的依赖?

Javascript 将回调指定为另一个回调';什么是反应中的依赖?,javascript,reactjs,react-native,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 func

这是我的钩子


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
是一个
回调
,如您所见。现在,TypeScript和ESLint编译时会出现警告

React Hook useCallback缺少依赖项:“createContract”。 包括它或删除依赖项数组


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

我认为你应该将
createContract
添加到dep数组中。 基于此,

useCallback将返回回调的一个备忘录版本,只有在其中一个依赖项发生更改时才会更改


<> P>不管它不会改变,但回调本身都会考虑它< /P>,因为你想让代码> ISEC20//C>在钱包提供者改变时做不同的事情,是的,这是不是意味着<代码> ISEC2020/代码>合同被创建了2次?因为它渲染了2次,但第2次才是真正正确的函数。对的