Я получаю эту ошибку, когда запускаю npm test
из своего приложения реагирования, и я не уверен, как ее исправить.Он говорит мне:
Либо оберните корневой компонент в <Provider>
, либо явно передайте «store» как реквизит «Connect (App)»
И мой корневой файл уже обернут в провайдера:
import React from "react";
import ReactDOM from "react-dom";
import { Provider } from "react-redux";
import { createStore, applyMiddleware } from "redux";
import reduxThunk from "redux-thunk";
import App from "./App";
import reducers from "./reducers";
const store = createStore(reducers, {}, applyMiddleware(reduxThunk));
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.querySelector("#root")
);
В моем файле App.js у меня есть это:
import React, { Component } from "react";
import { BrowserRouter, Route } from "react-router-dom";
import { connect } from "react-redux";
import * as actions from "./actions";
import LoginPage from "./components/auth/LoginPage";
import Signup from "./components/auth/Signup";
import Header from "./components/header/Header";
import HomePage from "./components/home/HomePage";
class App extends Component {
componentDidMount() {
this.props.fetchUser();
}
render() {
return (
<div>
<BrowserRouter>
<div>
<Header />
<Route path="/" exact component={HomePage} />
<Route path="/login" component={LoginPage} />
<Route path="/signup" component={Signup} />
</div>
</BrowserRouter>
</div>
);
}
}
export default connect(null, actions)(App);
Ошибка:
npm test
> my-app@0.1.0 test /var/jenkins_home/workspace/...
> react-scripts test --env=jsdom
FAIL src/App.test.js
● renders without crashing
Invariant Violation: Could not find "store" in either the context or props of "Connect(App)". Either wrap the root component in a <Provider>, or explicitly pass "store" as a prop to "Connect(App)".
Мой App.test.js
файл:
import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
it("renders without crashing", () => {
const div = document.createElement("div");
ReactDOM.render(<App />, div);
});
Когда я запускаю это приложение локально, используя npm start
, никаких ошибок не возникает, и избыточность работает нормально.Что происходит?
Примечание: npm test
запускается внутри моего конвейера серверов Jenkins / BlueOcean на случай, если что-то изменится