是否可以组合嵌套在以下 struct 中的异径管:

import 'user' from ...
import 'organisation' from ...
import 'auth' from ...
// ...

export default combineReducers({
  auth: {
    combineReducers({
        user,
        organisation,  
    }),
    auth,
  },
  posts,
  pages,
  widgets,
  // .. more state here
});

如果该州具有以下 struct :

{
    auth: {
        user: {
            firstName: 'Foo',
            lastName: 'bar',
        }
        organisation: {
            name: 'Foo Bar Co.'
            phone: '1800-123-123',
        },
        token: 123123123,
        cypher: '256',
        someKey: 123,
    }
}

如果auth减速器具有以下 struct :

{
    token: 123123123,
    cypher: '256',
    someKey: 123,   
}

那么,也许spread操作符很方便?...auth不确定:-(

推荐答案

它是完美的结合你的嵌套减速器使用combineReducers.但还有另一种模式非常方便:嵌套的约简.

const initialState = {
  user: null,
  organisation: null,
  token: null,
  cypher: null,
  someKey: null,
}

function authReducer(state = initialState, action) {
  switch (action.type) {
    case SET_ORGANISATION:
      return {...state, organisation: organisationReducer(state.organisation, action)}

    case SET_USER:
      return {...state, user: userReducer(state.user, action)}

    case SET_TOKEN:
      return {...state, token: action.token}

    default:
      return state
  }
}

在上述示例中,authReducer可以将操作转发到organisationReduceruserReducer,以更新其状态的某些部分.

Reactjs相关问答推荐

在迁移到Redux—Toolkit 2.0和Redux5.0之后,我在extraReducer和Slice方面有点挣扎,

在Reaction+Redux+RTKQuery中对API调用进行排序

利用OVERPASS API端点计算某建筑的表面积

Reactjs中的chartjs和reaction-chartjs-2的问题

使用Reaction-Hook-Form时未激发React.js onBlur事件

React,React Router,Joy UI:如何在导航离开和返回后禁用snackbar重新出现?

NextJS如何正确保存添加到购物车中的产品会话

带有样式的工具提示导致无法向功能组件提供参考警告

悬停轴时重新绘制自定义参照线

useEffect不重新渲染

当我无法引用模态组件时,如何使模态组件在 Next.js/React 中管理自己的状态?

找不到名称setCometChat

我如何使用 React toastify (Promise) toast 和邮箱 js

将 useRef 与 useImperativeHandle 一起使用时,React 不会重新渲染

如何在Next.js应用程序中为路由[slug]生成.html文件?

使用状态与复选框不同步

响应式媒体 React Tailwind

如何在props 更改时运行自定义挂钩?

react 路由dom没有路由匹配位置错误/在路由中制作组件

React 似乎在触发另一个组件时重新渲染了错误的组件