代码之家  ›  专栏  ›  技术社区  ›  devamat

resact@redux/toolkit更新状态时不重新呈现组件

  •  0
  • devamat  · 技术社区  · 4 年前

    代码沙盒: https://codesandbox.io/s/condescending-wiles-funk0?file=/src/App.js

    问题 :更新存储的状态时,不会重新呈现组件。在上面的示例中,您可以从控制台看到数据被正确地获取,但是组件没有被重新呈现,只是继续呈现 Loading...

    预期行为 :更新状态时,将重新呈现组件。

    我在组件中使用useState并订阅存储更改(如:

    store.subscribe(() => setComponentState(store.getData())
    

    这基本上会在每次更新数据时强制重新渲染。

    我可以改变状态 :在官方文件中,他们说你可以改变这个状态,因为它有一些魔力可以做到这一点( https://redux-toolkit.js.org/usage/usage-guide#simplifying-reducers-with-createreducer )因此,这不是问题所在。

    有人知道怎样才能让它正常工作吗?

    2 回复  |  直到 4 年前
        1
  •  1
  •   Matt Carlotta    4 年前

    useStore docs

    //仅示例!不要在真正的应用程序中这样做。

    //如果存储状态更改,组件将不会自动更新

    相反,你应该使用 useSelector

    请注意,如何使用codesandbox示例将导致无限的重新渲染 dispatch(fetchData()); React.useEffect .

    例如,使用 useSelector 具有 useEffect :

    Edit Redux - useSelector