小编Bea*_*dle的帖子

如何使用 React-Query 处理多个查询

我已经开始使用 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)

reactjs react-query

7
推荐指数
3
解决办法
3317
查看次数

如何使用 Redux Toolkit 实现多个运行相同代码的案例?

我正在努力将一些旧的 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)

redux redux-toolkit

5
推荐指数
1
解决办法
2363
查看次数

标签 统计

react-query ×1

reactjs ×1

redux ×1

redux-toolkit ×1