我已经开始使用 React-Query,如果我只需要从我的数据库中的单个集合中获取数据,它会非常有效。但是,我正在努力寻找一种查询多个集合以在单个组件中使用的好方法。
一个查询(没问题):
const { isLoading, isError, data, error } = useQuery('stuff', fetchStuff)
if (isLoading) {
return <span>Loading...</span>
}
if (isError) {
return <span>Error: {error.message}</span>
}
return (
<ul>
{data.map(stuff => (
<li key={stuff.id}>{stuff.title}</li>
))}
</ul>
)
}
Run Code Online (Sandbox Code Playgroud)
对不同集合的多个查询 ():
const { isLoading: isLoadingStuff, isError: isErrorStuff, data: stuff, error: errorStuff } = useQuery('stuff', fetchStuff);
const { isLoading: isLoadingThings, isError: isErrorThings, data: Things, error: errorThings } = useQuery('things', fetchThings);
const { isLoading: isLoadingDifferentStuff, isError: isErrorDifferentStuff, data: DifferentStuff, error: errorDifferentStuff } = …Run Code Online (Sandbox Code Playgroud) 我正在努力将一些旧的 Redux 代码转换为使用新的 Redux Toolkit。我遇到了一个问题,在旧代码中,多个 case 语句会触发相同的减速器逻辑。如何使用新的 case reducer 函数来做到这一点?
在旧代码中,REGISTER_FAIL、AUHT_ERROR、LOGIN_FAIL、LOGOUT 都运行相同的代码。createSlice reducers 对象中是否可以有相同类型的场景?
旧代码
case REGISTER_FAIL:
case AUTH_ERROR:
case LOGIN_FAIL:
case LOGOUT:
localStorage.removeItem('token');
return {
...state,
token: null,
isAuthenticated: false,
loading: false,
user: null,
};
default:
return state;
Run Code Online (Sandbox Code Playgroud)
新代码
const authUserSlice = createSlice({
name: 'authUser',
initialState,
reducers: {
registerFail(state, action) {
return {
...state,
token: null,
isAuthenticated: false,
loading: false,
user: null,
};
},
registerSuccess
},
});
Run Code Online (Sandbox Code Playgroud)