Не удается найти магазин в контексте Connect (приложение) - PullRequest
0 голосов
/ 01 мая 2020

Я новичок в 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...