代码之家  ›  专栏  ›  技术社区  ›  Sujoy Saha

如何阻止useSelector多次调用

  •  0
  • Sujoy Saha  · 技术社区  · 4 年前

    我有一个如下的组件-

    const MyComponent = () => {
      const bankingAccounts = useSelector(state => state.dogs);
    
      useEffect(() => {
        console.log(dogs);
      }, [dogs]);
    
      return <div>Demo</div>;
    };
    

    这里dogs返回一个对象数组。在我的应用程序中,还有一些其他的事情正在更新商店中狗的一些属性,这将导致重新调用上述useSelector。

    我曾尝试在useSelector中传递一个自定义相等函数,但没有成功。

    useSelector(state, areEqual)
    

    如何解决这个问题?

    0 回复  |  直到 4 年前
        1
  •  0
  •   ravvis    4 年前

    如果您不想要反应性,那么可以使用useStore[将仅返回当前状态]而不是useSelector()[每次状态更新时都会调用它。]

    const { getState  } = useStore()
    const bankingAccounts = getState().dogs;