如何解决Redux Toolkit实体适配器-选择器不起作用,即使我的数据为{{entities},[ids]}格式
这是我的数据提取-
const API_URI = "/fakeApi";
const fakeAPI = {
employees: {
async fetchAll() {
const result = await fetch(`${API_URI}/employees`,{ method: "GET" });
return result.json();
},}
};
export default fakeAPI;
这是我的切片数据:
export const fetchEmployees = createAsyncThunk('employees/getEmployees',async () => {
const result = await fakeAPI.employees.fetchAll();
return result;
});
export const mangEmpCRUDSlice = createSlice({
name: 'mangEmpCRUD',initialState,reducers: {
removeUser: employeeAdapter.removeOne
},extraReducers: builder => {
builder.addCase(fetchEmployees.pending,(state,action) => {
state.loading = true;
});
builder.addCase(fetchEmployees.fulfilled,action) => {
employeeAdapter.upsertMany(state,action.payload.employees);
state.loading = false;
});
}
});
export default mangEmpCRUDSlice.reducer;
export const { removeUser } = mangEmpCRUDSlice.actions;
export const {
selectById: selectUserById,selectIds: selectUserIds,selectEntities: selectUserEntities,selectAll: selectAllUsers,selectTotal: selectTotalUsers
} = employeeAdapter.getSelectors(state => state.employees);
当我在组件中使用SelectAllUser选择器时,即使我的redux开发工具显示获取的数据格式为{{entities},[ids]},它也会给我带来类型错误。 PS:对我的数据使用规范化器不会以实体适配器所需的格式获取数据。
解决方法
我认为你的 api (fakeAPI) 在调用 result.json() 时可能会返回另一个 Promise,请尝试使用 await result.json()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。