错误:"尝试访问ReactWrapper :: node,这是以前的私有财产"当使用酶3时

时间:2018-01-11 10:20:19

标签: javascript reactjs enzyme

我的测试中有以下几行(使用反应和酶):

const input = mount(<MyComponent/>).find('input').node;
input.focus();
input.select();

我已将酶从v2升级到v3,现在它抛出以下错误:

  

尝试访问以前是私有的ReactWrapper :: node   财产               酶ReactWrapper实例,但不再也不应该依赖。               请考虑使用getElement()方法。

但是,当我使用错误中建议的getElement()时,如下所示:

const input = mount(<MyComponent/>).find('input').getElement();

生成的对象没有原始.node中的函数:

  

TypeError:(0,_enzyme.mount)(...)。find(...)。getElement(...)。focus是   不是一个功能

     

TypeError:(0,_enzyme.mount)(...)。find(...)。getElement(...)。select   不是一个功能

我应该使用什么代替.node.getElement()来使此代码在酶3中运行?

1 个答案:

答案 0 :(得分:0)

取代.node,您应该使用.instance().getDOMNode(),取决于您是否将结果用作ReactElement或DOMComponent。