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