首页 > 解决方案 > useEffect 在它之外读取数组

问题描述

所以假设我有以下字符串数组:

const types = [
    "type1",
    "type2",
    "type3" ]

然后我也有一个这样的 useEffect 钩子:

useEffect( () => {
    if (someOtherString in types) { doSomething...}
}, [someOtherString])

上述 useEffect 钩子的问题在于它会要求添加对“类型”变量的依赖。因此,如果我将其添加到依赖项列表中:

,[someOtherString, types])

它将重新渲染大约 3 或 4 次。

如何创建一个 useEffect 来读取在其外部定义的数组或字典,而不将其添加到依赖项中?

标签: javascriptreactjs

解决方案


将条件本身作为依赖项怎么样?例子:

const shouldDoSomething = someOtherString in types;

useEffect(() => {
  if (shouldDoSomething) { /** Do something ! */ }
}, [shouldDoSomething])

推荐阅读