- 49
- 0
state中有多层级的tab和step,修改层级较深的state会非常痛苦,如何拆分reducer?或者如何使reducer扁平化?
var tabs = [
{
id:1,
children:[
{
id:11,
steps:[
{
form:[
{
name:'foo',
type:'input'
}
]
},{},{}...
]
},
{
id:12,
steps:[{},{}]
}
]
},
{
id:2,
children:[]
},
...
]
比如说,我想修改上面state中的foo值,则需要找到tabs[0].children[0].steps[0].form[xx].foo = 'boo',会很痛苦,如何简化?
1
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
- 共 0 条
- 全部回答
-
徹夜買醉 普通会员 1楼
在进行 reducer 拆分时,需要注意以下几点:
-
保持功能不变:拆分后的 reducer 模块应该能够保持原有的功能不变。即使在拆分过程中,某些函数的输入参数和返回结果可能有所变化,但是在拆分后的 reducer 模块中,这些参数和结果都应该保持不变。
-
保持可读性:拆分后的 reducer 模块应该易于理解和维护。每个拆分后的 reducer 模块都应该有明确的职责和输入输出。避免在拆分过程中添加过多的嵌套逻辑,以及使用难以理解的命名。
-
保持可测试性:拆分后的 reducer 模块应该易于测试。每个拆分后的 reducer 模块都应该有一个清晰的测试用例。拆分后的 reducer 模块应该能够通过测试。
-
保持可重用性:拆分后的 reducer 模块应该能够被其他代码复用。每个拆分后的 reducer 模块都应该有一个清晰的接口,以便其他代码能够方便地使用。拆分后的 reducer 模块应该能够被其他代码轻松地进行扩展和修改。
-
保持可维护性:拆分后的 reducer 模块应该能够被维护。每个拆分后的 reducer 模块都应该有一个清晰的文档,以便其他开发人员能够了解其功能和使用方法。拆分后的 reducer 模块应该能够被维护,以便在未来的代码开发中能够方便地进行调整和修改。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
