酶浅渲染和实例方法有什么区别

时间:2017-12-12 00:49:32

标签: reactjs enzyme

我不明白以下两行是如何不同的

shallowRenderedComponent = shallow(<SomeComponent />)
shallowRenderedComponentInstance = shallowRenderedComponent.instance()

酶文档非常模糊,我在互联网上找不到任何比较。

提前致谢

1 个答案:

答案 0 :(得分:2)

shallow返回一个包装器对象,其文档中包含enzyme定义的所有方法(例如findsetProps等)

instance直接访问React组件的实例化对象。也就是说,实例上可用的方法是您在应用程序代码中为该类编写的方法。

例如,如果您的React组件如下所示,您的shallowRenderedComponentInstance将授予您访问handleClick

的权限
class Example extends React.Component {
  handleClick = () {
    console.log("I was clicked");
  };

  render() {
    return (
      <pre>Hello, World!</pre>
    );
  }
}