我正在使用带有Redux工具包的CRUD减速器。减速器工作正常,但是显示该列表的react组件不会更新对象的内容。
我的组件正在像这样捕获状态:
const products = useSelector(state => state.ProductReducer.products);
我正在像这样映射数组:
{products.length > 0 &&
products.map((prod, index) => (
<ProductView
key={index.toString()}
product={prod}
update={_udpatePro}
remove={_deleteProp}
/>
))}
我有一个_deleteProp
函数,该函数调度destroy async函数,该函数发送请求以从服务器销毁该项目(工作正常),然后从redux slice中删除该项目(工作正常)。
问题是与映射有关...它会更新新的项目数,而不更新更新的对象。
例如,状态数组如下:
[{
"id": 1,
"title": "Annaliese",
}, {
"id": 2,
"title": "Byrom",
}, {
"id": 3,
"title": "Xymenes",
}]
在更新状态后,删除第二项,状态看起来像这样:
[{
"id": 1,
"title": "Annaliese",
}, {
"id": 3,
"title": "Xymenes",
}]
但是在映射状态数组的react组件中,它看起来像这样:
[{
"id": 1,
"title": "Annaliese",
}, {
"id": 2,
"title": "Byrom",
}]
我认为解决方案有点简单或合乎逻辑,但现在我的想法有点cho,我看不出问题出在哪里。
谢谢。