Как проверить или получить значение от государства в реакции? - PullRequest
0 голосов
/ 28 марта 2019

Привет, подскажите, пожалуйста, как проверить или получить значение из состояния в реакции?получение ошибки wrapper.instance (...). handleClickShowPassword не является функцией

вот мой код https://codesandbox.io/s/l2lk4n794l

it("toggle showpassword value", () => {
    wrapper.setState({ showPassword: false });
    wrapper.instance().handleClickShowPassword();

    expect(wrapper.state.showPassword).toEqual(true);
  });

enter image description here

1 Ответ

1 голос
/ 28 марта 2019

Поскольку LoginContainer является упаковкой с HOC, вам нужно либо экспортировать компонент без withStyles HOC, либо использовать dive в оболочке, чтобы получить экземпляр компонента.Также state - это функция для component instance, и, следовательно, вам необходимо вызвать ее для доступа к состоянию

describe("<LoginContainer/>", () => {
  let wrapper;
  beforeEach(() => {
    wrapper = shallow(<LoginContainer />);
  });

  it("toggle showpassword value", () => {
    const comp = wrapper.dive();
    comp.dive().setState({ showPassword: false });
    comp.instance().handleClickShowPassword();
    expect(comp.state("showPassword")).toEqual(true);
  });
});

Рабочая демонстрация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...