Компонент отображается, прежде чем я могу перенаправить маршрут. Как я могу смягчить рендеринг? - PullRequest
0 голосов
/ 09 мая 2019

хочу перенаправить через 3 сайта.Вход в систему - Панель инструментов - Подробности Детали основаны на выборе данных в панели инструментов.Если я обновлю сайт url / Details, контекст будет утерян, и я хотел бы перенаправить его на Dashboard, но Details выдает ошибки, прежде чем я смог перенаправить.Как я могу изменить это поведение?

Я безуспешно пробовал следующие подходы: 1. перенаправление в Browserrouter, основанное на том, существуют ли необходимые данные, если не перенаправить в Dashboard 2. В деталях componentWillMount () Iнастроил перенаправление

Нужно ли проверять каждое использование данных, если они существуют?Это кажется довольно сложной задачей для простой маршрутизации ...

Это моя конфигурация маршрутизации.Второе перенаправление не работает.

            {this.props.token?<Redirect to="/dashboard" />:<Redirect to="/login" />}
            {this.props.selectedCow?<Redirect to="/dashboard"/>:null}
            <Switch>
                <Route path="/login" component={Login} />
                <Route path="/details" component={CowDetails} />
                <Route path="/dashboard" exact component={Dashboard} />
            </Switch> 

Ошибка: данные не определены (отображается CowDetails и отсутствует контекст перед перенаправлением)

1 Ответ

0 голосов
/ 09 мая 2019

Я использовал Redirect неправильно.Как указано в Документах, он фактически работает без рендеринга компонента.

https://reacttraining.com/react-router/web/api/Redirect

Так что для меня это

<Route exact path="/details" render={() => (
                    this.props.selectedCow ? (
                      {CowDetails}

                    ) : (
                      <Redirect to="/dashboard"/>
                    )
                  )}/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...