一、问题描述
1、现有数据结构
const initState = { listData: { list: [], total: 0 }, someState: { loading: false, submitLoading: false, visible: false, record: {}, isEdit: false }, dirList: [] }
2、期望结果
需要修改loading的值为true,或者visible的值,但事先不知道修改的是loading还是visible。
const initState = { listData: { list: [], total: 0 }, someState: { loading: true, submitLoading: false, visible: false, record: {}, isEdit: false }, dirList: [] }
二、解决方案
import {extend, cloneDeep} from 'lodash' // 假设从外面传进来的result={loading: true}
let newState = cloneDeep(initState)
let newState = extend(newState, { someState: Object.assign(newState.someState, result) }) // 这里做了两层对象合并处理