Отправка состояния с неработающим маршрутизатором реакции - PullRequest
1 голос
/ 11 июля 2019

Я использую react version ^16.8.1 и react-router-dom version ^4.3.1 в своем проекте.
Я пытаюсь отправить часть состояния с реагирующим маршрутизатором следующим образом:

      this.props.history.push({
        pathname: '/',
        state: {
          successMessage: this.generateSuccessMessage(payload)
        }
      });

В другом компоненте, который я пытаюсьчтобы получить это состояние и отправить его в качестве опоры на дочерний компонент, например:

successMessage={this.props.location.state ? this.props.location.state.successMessage : null}

Но я продолжаю получать null каждый раз, когда запускаю push.Я проверил state в инструментах реагирования и протестировал Jest, но оба показывают, что state не пересылается другому компоненту.Ниже приведены соответствующие маршруты.Я перемещаю состояние из OppgaveEditor в историю и пытаюсь получить его в компоненте Dashboard.

     <Switch>
          <Route exact path="/" render={(props) => <Redirect to="/dashboard" />} />
          <Route path="/dashboard" render={(props) => <Dashboard user={this.state.user} {...props} ><OppgaveDashboard/></Dashboard>}/>} />
          <Route path="/oppgave-editor/:id" render={(props) => <OppgaveEditor user={this.state.user} {...props} />}/>
          <Route component={NotFound}/>
     </Switch>

Что я делаю не так, как я могу это исправить?

1 Ответ

1 голос
/ 11 июля 2019

Полагаю, вы теряете state во время перенаправления на '/'. Вам нужно переслать его.

Это должно дать вам что-то вроде этого:

 <Route exact path="/" render={(props) => <Redirect to={{
      pathname: '/',
      state: this.props.location.state
    }}
 />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...