Использование провайдера, но по-прежнему обнаруживается ошибка. Инвариантное нарушение: не удалось найти «store» в контексте «Connect». - PullRequest
0 голосов
/ 21 мая 2019

Я посмотрел несколько ответов, но все рекомендуют обернуть основной компонент в провайдере.

Я уже сделал это, но ошибка остается.

Это мой компонент App.js

const App = ({ store }) =>
  <Provider store={store}>
    <div className="App">
      <Users/>
    </div>
  </Provider>

И я делаю очень простой тест.При первом использовании фермента,

import React from 'react'
import Adapter from 'enzyme-adapter-react-16'
import Users from './'
import { shallow, configure } from 'enzyme'

configure({adapter: new Adapter()});

describe('First React component test with Enzyme', () => {
  it('renders without crashing', () => {
    shallow(<Users />);
  });
});

Ошибка:

Инвариантное нарушение: не удалось найти «store» в контексте «Connect (Users)».Либо оберните корневой компонент в поставщике, либо передайте пользовательский поставщик контекста React поставщику и соответствующий потребитель контекста React в Connect (Users) в параметрах подключения.

1 Ответ

1 голос
/ 21 мая 2019

Возможное решение заключается в следующем:

import React from "react";
import { shallow } from "enzyme";
import { Provider } from "react-redux";
import configureMockStore from "redux-mock-store";
import Userfrom "../User";

const mockStore = configureMockStore();
const store = mockStore({});

describe('First React component test with Enzyme', () => {
  it('renders without crashing', () => {
    shallow(
     <Provider store={store}>
      <User/>
     </Provider>
    );
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...