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



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

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

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

预先感谢

shallow返回包含所有方法的包装对象,该对象在其文档中定义了所有方法(例如findsetProps,etc)

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

作为一个例子,如果您的React组件看起来如下,则您的shallowRenderedComponentInstance将使您访问handleClick

class Example extends React.Component {
  handleClick = () {
    console.log("I was clicked");
  };
  render() {
    return (
      <pre>Hello, World!</pre>
    );
  }
}

最新更新