.setState(nextState[, callback]) => Self
Метод для вызова setState() на экземпляре корневого компонента, аналогично тому, как вы это делаете в методах компонента, и перерисовывает его. Этот метод полезен для тестирования вашего компонента в труднодостижимых состояниях, однако следует использовать его экономно. Если возможно, вы должны использовать внешний API вашего компонента (который часто доступен через .instance()), чтобы привести его в нужное состояние для тестирования, чтобы получить максимально точные результаты. Однако это не всегда практично.
ПРИМЕЧАНИЕ: До версии v3.8.0 enzyme, можно вызывать только на экземпляре обёртки, который также является корневым экземпляром.
Аргументы
-
nextState(Object): Объект, содержащий новое состояние для слияния с текущим состоянием -
callback(Function[необязательно]): Если указано, функция обратного вызова будет выполнена после завершения setState
Возвращаемое значение
ReactWrapper: Возвращает себя.
Пример
class Foo extends React.Component {
constructor(props) {
super(props);
this.state = { name: 'foo' };
}
render() {
const { name } = this.state;
return (
<div className={name} />
);
}
}
const wrapper = mount(<Foo />);
expect(wrapper.find('.foo')).to.have.lengthOf(1);
expect(wrapper.find('.bar')).to.have.lengthOf(0);
wrapper.setState({ name: 'bar' });
expect(wrapper.find('.foo')).to.have.lengthOf(0);
expect(wrapper.find('.bar')).to.have.lengthOf(1);
Связанные методы
© 2015 Airbnb, Inc.
Licensed under the MIT License.
https://enzymejs.github.io/enzyme/docs/api/ReactWrapper/setState.html