代码之家  ›  专栏  ›  技术社区  ›  four-eyes

Enzym中的访问嵌套状态

  •  -1
  • four-eyes  · 技术社区  · 6 年前

    我的状态像这样

    `this.state = { 
                   potato: {
                            chips: 'yum',
                            fries: 'even better',
                            }
                   }
    

    然后我想进入 fries . wrapper.state('potato') 把我带到第一个层次,如何更深入?它不是

    • wrapper.state('potato').state('fries')
    • wrapper.state('potato', 'fries')
    • wrapper.state(['potato', 'fries'])
    • wrapper.state('potato').fries
    • wrapper.state('potato')['fries']

    当我这样做的时候

    const potato = wrapper.state('potato');
    

    然后

    console.log(potato);
    

    我得到

    {
         chips: 'yum',
         fries: 'even better',
    }
    

    但是,通过访问

    console.log(potato.chips);
    console.log(potato.fries);
    console.log(potato.potato.chips)
    

    所有回报

    未定义

    我不明白…

    1 回复  |  直到 6 年前
        1
  •  0
  •   Sahil Raj Thapa    6 年前

    您所要做的就是首先获取状态,然后使用点表示法访问属性。

    wrapper.state().potato.fries

    wrapper.state('potato').fries

    也可以使用括号表示法。

    wrapper.state()['potato']['fries']

    wrapper.state('potato')['fries']