我进行了以下测试:
describe('Form', () => {
let store;
let wrapper;
beforeEach(() => {
store = mockStore(mockData);
wrapper = mount(
<Provider store={store}>
<Form />
</Provider>
);
});
it('handleForm calls uses validate() for validation', () => {
const instance = wrapper.instance();
const submitFormButton = wrapper.find('.submitFormButton');
submitFormButton.simulate('click');
console.log(instance); // null
});
});
对我到底在做什么错有任何想法吗?
我知道酶有这个东西:
注意:对于React 16及更高版本,instance()对于无状态返回null 功能组件。
但是我的功能组件确实有一个状态,我正在使用钩子(如果那会改变任何东西),那么应该仍然可以通过某种方式访问instance.componentMethod()
,对吧?
答案 0 :(得分:1)
注意:在React 16及更高版本中,instance()对于无状态功能组件返回null。
在<mat-progress-bar [class]="color" [value]="{{ progress }}"></mat-progress-bar>
中,它们实际上是指功能组件。 stateless component
方法是为基于类的组件保留的。
因此您可以将其用于此组件:
instance()
但不是这个:
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}