相关疑难解决方法(0)

如何在createSlice 的reducer 中获取状态值?

我在我的反应项目中使用 redux-toolkit。在 createSlice 的 reducer 中,我想在减少最终状态之前使用状态中现有的实体数组并附加新数组。但我无法获得状态值。

这是减速器代码

export const usersSlice = createSlice({
  name: "users",
  initialState: initialUsersState,
  reducers: {
    usersCreated: (state: UsersState, action) => {
      // in real, return count from the server and append the entities on front-end only?
      const { count, entities } = action.payload;
      const existingEntities = state.entities;
      const newEntities = [...existingEntities, ...entities];
      const totalCount = state.totalCount+count;
      return {
        ...state,
        entities: newEntities,
        totalCount: totalCount,
        listLoading: false,
        error: null,
      };
    },
}});

Run Code Online (Sandbox Code Playgroud)

当我调试 state.entites 变量时,它看起来像这样

在此处输入图片说明

有没有办法访问 reducer/extraReducer 中的当前状态值以根据需要重新创建状态?

因为我认为在 …

javascript typescript reactjs redux redux-toolkit

6
推荐指数
3
解决办法
5409
查看次数

将具有参数的无状态React组件转换为有状态

在我的React JS项目中,我正在研究PrivateRoutes.我已经完成了私有路由和使用身份验证的示例react-router-dom.

https://reacttraining.com/react-router/web/example/auth-workflow

根据这个文档,他们创建了PrivateRoute一个无状态组件.

但我的要求是将其转换为有状态的React组件,因为我想将我的PrivateRoute组件连接到redux store.

这是我的代码.

无国籍组成部分

import React from 'react';
import {Route, Redirect} from 'react-router-dom';
import {auth} from './Authentication';

const PrivateRoute = ({ component: Component, ...rest }) => (
    <Route
      {...rest}
      render={props =>
        auth.isAuthenticated ? (
          <Component {...props} />
        ) : (
          <Component {...props} action="login"/>
        )
      }
    />
  );

  export default PrivateRoute;
Run Code Online (Sandbox Code Playgroud)

我将此组件转换为有状态React组件.

有状态的React组件

import React from 'react';
import {Route, Redirect} from 'react-router-dom';
import {auth} from './Authentication';
import …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router react-redux

4
推荐指数
2
解决办法
1811
查看次数