.setProps(nextProps[, callback]) => Self
Метод, который устанавливает свойства корневого компонента и перерисовывает его. Полезен, когда вы хотите проверить, как компонент ведет себя со временем при изменении свойств. Вызов этого метода, например, вызовет метод жизненного цикла componentWillReceiveProps.
Аналогично setState, этот метод принимает объект свойств и сливает его с уже существующими свойствами.
ПРИМЕЧАНИЕ: может быть вызван только на экземпляре обертки, который также является корневым экземпляром.
Аргументы
-
nextProps(Object): Объект, содержащий новые свойства для слияния с текущими свойствами -
callback(Function[необязательно]): Если указано, функция обратного вызова будет выполнена после завершения setProps
Возвращаемое значение
ReactWrapper: Возвращает себя.
Пример
import React from 'react';
import PropTypes from 'prop-types';
function Foo({ name }) {
return (
<div className={name} />
);
}
Foo.propTypes = {
name: PropTypes.string.isRequired,
};
const wrapper = mount(<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 = mount(<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/ReactWrapper/setProps.html