Я новичок в Redux. Я успешно внедрил <Provider store={store}>
, однако, когда я пытаюсь использовать его в App.js
для управления частными маршрутами, я получаю сообщение об ошибке ниже, и я не уверен, что он пытается мне сказать. Помощь приветствуется.
"× Ошибка: не удалось найти" store "в контексте" Connect (App) ". Либо оберните компонент root в a, либо передайте пользовательский поставщик контекста React в и соответствующая реакция "
class App extends Component {
componentDidMount() {
store.dispatch(loadUser());
}
static propTypes = {
auth: PropTypes.object.isRequired
};
render() {
const { isAuthenticated } = this.props.auth;
return (
<Provider store={store}>
<Router>
<Header />
<Switch>
<Route exact path="/login">
<ErrorBoundary>
<LoginPage />
</ErrorBoundary>
</Route>
<PrivateRoute path="/purchase_order">
<PurchaseOrderPage />
</PrivateRoute>
</Switch>
</Router>
</Provider>
);
}
}
const fakeAuth = {
isAuthenticated: true,
authenticate(cb) {
fakeAuth.isAuthenticated = true;
setTimeout(cb, 100); // fake async
},
signout(cb) {
fakeAuth.isAuthenticated = false;
setTimeout(cb, 100);
}
};
function PrivateRoute({ children, ...rest }) {
return (
<Route
{...rest}
render={({ location }) =>
console.log(' fakeAuth.isAuthenticated', fakeAuth.isAuthenticated) ||
fakeAuth.isAuthenticated ? (
children
) : (
<Redirect
to={{
pathname: '/login',
state: {
from: location
}
}}
/>
)
}
/>
);
}
const mapStateToProps = (state) => ({
auth: state.auth
});
export default connect(mapStateToProps, null)(App);