Redux Toolkit中createEntityAdapter定义selectId后updateOne报错如何解决?
createEntityAdapter update方法类型错误解决
核心原因
createEntityAdapter的selectId配置仅定义读取实体对象自身ID的规则,不会修改更新类方法的入参结构。所有更新方法(updateOne/updateMany)接收的Update类型固定要求两个字段:
id:要更新的实体的唯一标识值,对应你selectId返回的结果changes:要修改的实体属性集合
你实体的ID字段叫bookId仅影响selectId的取值逻辑,不代表更新时要把入参的id字段换成bookId,这是两类完全不同的逻辑。
正确写法
把你调用updateOne的代码替换为以下内容即可:
const stateThree = entityAdapter.updateOne(stateTwo, { // 此处固定使用id字段,值为目标实体的bookId id: 3, changes: { title: "three - change" } });
内容的提问来源于stack exchange,提问作者Laurence Fass
相关产品推荐
相关产品推荐

