React redux正确的状态更新



我有一个问题,这个代码正确吗?React中的状态是不可理解的,所以这是正确的还是不正确的?

case "GET_SINGLE":
const newState = [...state.data];
const id = action.payload;

const item = newState.filter((item) => item.id === id.id);

return {
...state,
record: item[0],
};

您的状态有一个带有对象数组的属性data和一个带有当前对象的属性record。如果你关注的是对国家结构的看法,我认为这是不必要的重复。您可以保存当前记录的id,然后使用选择器来获取整个对象。在多个地方拥有相同的数据是不好的,因为你想要一个单一的真相来源。

但就这个选择器而言,您将从action.payload中找到与id匹配的项,并将其保存为属性record。你只想找一个项目,所以你应该使用find()而不是filter()

使用变量id.id非常令人困惑。您可以使用析构函数仅从有效负载(const {id} = action.payload;(中获取id。或者您可以在比较中使用action.payload.id(item.id === action.playload.id(。

case "GET_SINGLE":
const {id} = action.payload;

const item = state.data.find((item) => item.id === id);

return {
...state,
record: item,
};

相关内容

  • 没有找到相关文章

最新更新