Spec-Zone.ru › Enzyme

.setState(nextState[, callback]) => Self

Метод для вызова setState() на экземпляре корневого компонента, аналогично тому, как вы это делаете в методах компонента, и перерисовывает его. Этот метод полезен для тестирования вашего компонента в труднодостижимых состояниях, однако следует использовать его экономно. Если возможно, вы должны использовать внешний API вашего компонента (который часто доступен через .instance()), чтобы привести его в нужное состояние для тестирования, чтобы получить максимально точные результаты. Однако это не всегда практично.

ПРИМЕЧАНИЕ: До версии v3.8.0 enzyme, можно вызывать только на экземпляре обёртки, который также является корневым экземпляром.

Аргументы

  1. nextState (Object): Объект, содержащий новое состояние для слияния с текущим состоянием
  2. 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);

Связанные методы

  • .setProps(props[, callback]) => Self
  • .setContext(context) => Self

© 2015 Airbnb, Inc.
Licensed under the MIT License.
https://enzymejs.github.io/enzyme/docs/api/ReactWrapper/setState.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API