Переадресация с использованием избыточной переменной состояния - PullRequest
0 голосов
/ 02 февраля 2019

Я учусь реагировать и заинтересован в том, чтобы узнать, как лучше всего использовать Redirect в моем приложении реакции.Рассмотрим ситуацию, когда

Маршрут /dashboard/books показывает все книги для вошедшего в систему пользователя.Для создания книги маршрут /dashboard/books/create представляет форму.

Я хочу Redirect вернуться к /dashboard/books, когда книга будет успешно создана после показа Alert.

Редуктор

const state = {
    bookCreated: false
}

О чем я думаю?

Я думаю об использовании этой переменной состояния для условного перенаправленияиз моего NewBook компонента.

NewBook.js

render() {
  if(this.props.bookCreated) {
    return  <Redirect to="/dashboard/books" />
  }else {
    return <CreateBookForm />
  }
}

Как только книга создана, я могу отправить действие, чтобы установить для переменной bookCreated значение true, чтобы я мог Redirect.

// actions.js
dispatch({type: 'BOOK_CREATED'})

// reducer.js
return {...state, bookCreated: true}

Если я использую этот подход, мне придется отправить другое действие, чтобы пометить bookCreated как false, чтобы снова получить доступ к моему NewBook компоненту.

Сводка

Может кто-нибудь объяснить, хорошо ли это dispatch другое действие просто для изменения одной переменной состояния?Или какой другой подход я могу использовать, чтобы представить Alert, а затем перенаправить.

...