我在我的反应项目中使用 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 中的当前状态值以根据需要重新创建状态?
因为我认为在 …
在我的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)