Redux中能否通过action传入参数动态修改state对应属性值?
Redux动态修改指定state属性实现方法
你可以直接使用ES6对象字面量的计算属性名语法实现需求,不需要为每一行单独编写处理逻辑。
正确实现代码
case 'CHANGE_STATE': { return { ...state, [action.row]: action.payload } }
实现说明
- 语法规则:在对象字面量中,用方括号
[]包裹动态值,JS会先计算方括号内表达式的返回值,将其作为对象的属性键名 - 逻辑等价效果:如果触发action时传入的
action.row值为row5,上述代码最终和硬编码写...state, row5: action.payload的逻辑完全一致,符合Redux不可变更新的规范要求 - 使用注意:传入的
action.row需要是合法的对象键类型(字符串、数字、Symbol都可),通常传对应行的标识字符串即可正常运行。
内容的提问来源于stack exchange,提问作者lsKakashi
相关产品推荐
相关产品推荐

