React Redux 通过像 useSelector 这样的钩子访问完整的存储状态

问题描述 投票:0回答:1

我正在学习 Redux,以便将其与 React 一起使用。我被一个简单的任务困住了。 我有一个商店,由这样的对象数组组成

const initialState = {
  items: [
    {
      property1: someValue,
      property2: someValue,
      ...
    },
    {
      property1: someValue,
      property2: someValue,
      ...
    },
    {
      property1: someValue,
      property2: someValue,
      ...
    },
    ...
  ]
}

我已经设置了 Provider、store、sliceReducer 和所有其他必要的东西。

在我的应用程序中的一个位置,我需要通过 ID 获取特定项目。因此,我为此编写了一个选择器函数,并将其与 useSelector 挂钩一起使用。而且效果很好。

但在另一个地方我需要获取整个对象数组。这意味着我需要获得完整的商店状态。选择器功能仅用于选择商店的某些部分。

我认为调用不带参数的 useSelector 钩子会给我在选择器函数中获得的整个状态对象。但是它会抛出一个错误,我必须将选择器传递给 useSelector。

我知道存在 useStore 挂钩,但我读到它提供了对存储的引用而无需重新渲染。所以这意味着当存储状态改变时,这个钩子不会更新这个引用。

如何使用像 useSelector 这样的钩子和重新渲染来获取 React 组件中的完整存储状态?

javascript reactjs react-native redux react-redux
1个回答
0
投票

当您需要整个状态并希望确保组件在状态更改时更新时,使用 useSelector 和简单的选择器函数来返回完整的存储状态是最好的方法。这种方法非常高效,可以让您的组件响应状态更新。

© www.soinside.com 2019 - 2024. All rights reserved.