账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    reducer拆分问题
    • 2018-09-14 00:00
    • 10
    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 拆分时,需要注意以下几点:

      1. 保持功能不变:拆分后的 reducer 模块应该能够保持原有的功能不变。即使在拆分过程中,某些函数的输入参数和返回结果可能有所变化,但是在拆分后的 reducer 模块中,这些参数和结果都应该保持不变。

      2. 保持可读性:拆分后的 reducer 模块应该易于理解和维护。每个拆分后的 reducer 模块都应该有明确的职责和输入输出。避免在拆分过程中添加过多的嵌套逻辑,以及使用难以理解的命名。

      3. 保持可测试性:拆分后的 reducer 模块应该易于测试。每个拆分后的 reducer 模块都应该有一个清晰的测试用例。拆分后的 reducer 模块应该能够通过测试。

      4. 保持可重用性:拆分后的 reducer 模块应该能够被其他代码复用。每个拆分后的 reducer 模块都应该有一个清晰的接口,以便其他代码能够方便地使用。拆分后的 reducer 模块应该能够被其他代码轻松地进行扩展和修改。

      5. 保持可维护性:拆分后的 reducer 模块应该能够被维护。每个拆分后的 reducer 模块都应该有一个清晰的文档,以便其他开发人员能够了解其功能和使用方法。拆分后的 reducer 模块应该能够被维护,以便在未来的代码开发中能够方便地进行调整和修改。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部