Ниже приведен мой компонент в моем, который мне нужен для проверки условия if
внутри componentDidMount
и componentWillUnmount
. Я могу написать контрольный пример для componentDidMount
, но застрял с if внутри componentDidMount
. Любые указатели действительно помогут мне.
Код -
class TestComponent extends React.Component {
constructor(props) {
super(props);
this.element = React.createRef();
}
componentDidMount() {
const scrollableContainer = this.element.current;
if (scrollableContainer) {
scrollableContainer.addEventListener('scroll', this.handleScroll);
}
this.getUserData();
}
componentWillUnmount() {
const scrollableContainer = this.element.current;
if (scrollableContainer) {
scrollableContainer.removeEventListener('scroll', this.handleScroll);
}
}
handleScroll = () => {
console.log(`Event Firing`);
}
render() {
return (
<div className="container">
<div className="basic-info">
<p>Dummy Text Basic 1</p>
<p>Dummy Text Basic 2</p>
<p>Dummy Text Basic 3</p>
<p>Dummy Text Basic 4</p>
</div>
<div className="advance-info" ref={this.element}>
<p>Dummy Text Advance 1</p>
<p>Dummy Text Advance 2</p>
<p>Dummy Text Advance 3</p>
<p>Dummy Text Advance 4</p>
<p>Dummy Text Advance 5</p>
<p>Dummy Text Advance 6</p>
<p>Dummy Text Advance 7</p>
<p>Dummy Text Advance 8</p>
</div>
</div>
)
}
}
Контрольный пример для componentDidMount -
it('should test componentDidMount for handling scroll Event', () => {
const component = shallow(<TestComponent {...props} />);
const funcSpy = jest.spyOn(component.instance(), 'getUserData');
component.instance().componentDidMount();
expect(funcSpy).toHaveBeenCalled();
});