.setProps(nextProps[, callback]) => Self
Метод, который устанавливает свойства корневого компонента и перерисовывает его. Полезен для тестирования поведения компонента во времени при изменении свойств. Вызов этого метода, например, вызовет метод жизненного цикла componentWillReceiveProps.
Аналогично setState, этот метод принимает объект свойств и объединяет его с уже существующими свойствами.
ПРИМЕЧАНИЕ: может быть вызван только на экземпляре обёртки, который также является корневым экземпляром.
Аргументы
-
nextProps(Object): Объект, содержащий новые свойства для объединения с текущими свойствами -
callback(Function[необязательно]): Если указан, функция обратного вызова будет выполнена после завершения setProps
Возвращаемое значение
ShallowWrapper: Возвращает себя.
Пример
import React from 'react';
import PropTypes from 'prop-types';
function Foo({ name }) {
return (
<div className={name} />
);
}
Foo.propTypes = {
name: PropTypes.string.isRequired,
};
const wrapper = shallow(<Foo name="foo" />);
expect(wrapper.find('.foo')).to.have.lengthOf(1);
expect(wrapper.find('.bar')).to.have.lengthOf(0);
wrapper.setProps({ name: 'bar' });
expect(wrapper.find('.foo')).to.have.lengthOf(0);
expect(wrapper.find('.bar')).to.have.lengthOf(1);
import sinon from 'sinon';
const spy = sinon.spy(MyComponent.prototype, 'componentWillReceiveProps');
const wrapper = shallow(<MyComponent foo="bar" />);
expect(spy).to.have.property('callCount', 0);
wrapper.setProps({ foo: 'foo' });
expect(spy).to.have.property('callCount', 1);
Связанные методы
© 2015 Airbnb, Inc.
Licensed under the MIT License.
https://enzymejs.github.io/enzyme/docs/api/ShallowWrapper/setProps.html