J'ai branché réagir routeur 4 dans ma réaction-create-application et sur l'exécution npm run test
je reçois l'erreur suivante:React Router 4 Échec de type de contexte
Warning: Failed context type: The context `router` is marked as required in `Switch`, but its value is `undefined`.
in Switch (at App.js:17)
in main (at App.js:16)
in div (at App.js:15)
in App (at App.test.js:7)
J'utilise [email protected], et [email protected]
Je me suis assuré que mon composant <Switch>
est imbriqué dans <BrowserRouter>
.
app.js:
import React, { Component } from 'react';
import { Switch, Route, withRouter, Router } from 'react-router-dom';
import './App.css';
// Components
import Header from '../../components/header/Header';
import Nav from '../../components/nav/Nav';
import Dashboard from './../../containers/dashboard/Dashboard';
import Events from './../../containers/events/Events';
import NotFound from './../../containers/notfound/NotFound';
class App extends Component {
render() {
return (
<div className="App">
<Header />
<Nav />
<main id="main">
<Switch context="router">
<Route path="/" exact component={Dashboard} />
<Route path="/events" exact component={Events} />
<Route path="*" component={NotFound} />
</Switch>
</main>
</div>
);
}
}
export default App;
et mes index.js
import ReactDOM from 'react-dom';
import React from 'react';
import { BrowserRouter } from 'react-router-dom';
import { Provider } from 'react-redux';
import Store from './store';
import App from './containers/app/App';
import './index.css';
const StoreInstance = Store();
ReactDOM.render(
<Provider store={StoreInstance}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>,
document.getElementById('root')
);
Quelqu'un d'autre viennent à travers cela?
Voilà le billet! Je ne savais pas que le composant ' ' de la fonction de test devait être enveloppé dans tous les autres composants que j'utilise pour le redux et le routage. Merci @sergei –
Stretch0
Vous venez de voir votre modification pour déplacer 'Provider' et 'BrowserRouter' dans le composant 'App'. Bonne solution – Stretch0