问题标签 [createentityadapter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
redux-toolkit - Redux-toolkit createEntityAdapter
以下代码按预期工作。使用 createEntityAdapter 填充状态。
但是,随着承诺的履行,我还想将状态的“状态”属性更新为“空闲”。
当我将已完成的案例更改为:
当我添加一个参数时,upsertMany
我收到错误:可能未处理的 Promise Rejection (id: 0)
除了如何使它工作的问题,我可以再问一个问题吗?在第一个代码片段中(那个有效的):
我知道 addCase 有两个参数:动作类型/创建者(fetchUsers.fulfilled 是这里的动作创建者)和一个减速器(在这种情况下是 usersAdapter.upsertMany)。这里 fetchUsers 返回对象,但是usersAdapter.upsertMany 如何知道要插入/更新什么作为有效负载?那里没有参数(例如usersAdapter.upsertMany(action.payload)。在所有其他需要一些有效负载的reducer中,总是有一个参数(状态,动作),例如。
redux - 嵌套数据规范化 createEntityAdapter
我正在尝试规范化以下结构的数据数组Array<Application>
。使用createEntityAdapter
.
在使用 a 获取数据createAsyncThunk
并返回它们之后,我确实将它们设置为extraReducers
:
在Redux DevTools中,我可以看到数据如下所示:
问题: 数据未完全标准化。如何规范化组、选民和用户对象?
以下是接口:
typescript - 如何在合并对象中为 createEntityAdapter 对象的 getInitialState 键入属性?
我想用 FetchingStatus 类型输入状态。如何实施?
这是 getInitialState 的签名:
redux - RTK createEntityAdapter updateMany 不更新布尔属性
我正在使用 RTK 创建实体,createEntityAdapter
在其中我有一种方法可以添加一些实体并删除一些实体。这是通过将属性设置为true
or来实现的false
。
这不行!但是,如果我将isFriend
属性设置为true
,则可以!我在这里想念什么?
javascript - React redux-toolkit createEntityAdapter setAll usage
I retrieve an array from database and set it to my slice.
Users change the order with a user interface. When they change the order of the objects reorder
reducer runs. It is a simple function which changes the positions of two objects inside array. Then boardAdapter.setAll
sets the whole data.
Actually it works properly, but i realized an odd behaviour when all chars of id field are numbers as below. (e.g. id: '1' or id: '1234')
This time reordering process works again properly but when it comes to returning that 'ordered' data and boardAdapter.setAll
step, i see that ids
being updated but entities
still remain same.
Before reordering / After reordering
I appreciate if anyone knows the reason. Thank you for your support.
reactjs - ReduxToolikt 实体适配器问题:如何定义更新的 selectId 类型?
我正在学习如何在一个工作示例中使用 createEntityAdapter,但我无法selectId
正确解析 for Update 函数。
工作沙箱:https ://codesandbox.io/s/createentityadapter-demo-forked-5rvl4
entityAdapter 被初始化为:
添加值可以正常工作:
然而 updateOne 在 bookId 上给出了类型错误:
TS错误:
(property) bookId: number 没有重载匹配这个调用。重载 1 of 2,“(状态:EntityState,更新:更新):EntityState”,给出了以下错误。'{ bookId: number; 类型的参数 更改:{标题:字符串;}; }' 不可分配给“更新”类型的参数。对象字面量只能指定已知属性,并且“更新”类型中不存在“bookId”。重载 2 of 2, '(state: EntityState, update: { payload: Update; type: string; }): EntityState',给出以下错误。'{ bookId: number; 类型的参数 更改:{标题:字符串;}; }' 不可分配给类型为 '{ payload: Update; 的参数。类型:字符串;}'。对象字面量只能指定已知属性,并且类型 '{ payload: Update; 中不存在 'bookId' 类型:字符串;}'.ts(2769)
为什么当我明确定义bookId
为我的选择 ID 时会看到此错误?
javascript - Redux Toolkit createEntityAdapter:如何获取适配器的当前状态?
我看到 TS 类型错误试图将状态传递给 entityAdapter CRUD 函数
实时沙箱(注释掉错误的行):
https://codesandbox.io/s/createentityadapter-demo-5rvl4
创建书籍适配器
...创建切片并配置存储
...调度按预期工作
但是当我检索存储状态并尝试在对adapter.addOne的命令式调用中使用它时出现错误(即不通过reducer)
storeState 的 console.log 看起来像一个有效的对象...
但是这条线(注释掉)
导致 TS 错误:
我不明白为什么在我直接通过商店时会出现不匹配。
我已经在 JS 中尝试过这个,当然没有类型问题,它可以正常工作。那么我的问题是:如果不是 store.getState() 的结果,那么在使用 TS 时传递给 CRUD 函数的正确状态对象是什么?