У меня есть 2 маршрута с использованием одного и того же компонента (формы), один для создания новой записи, а другой для редактирования. Имя штата has been removed от React Router, я не могу просто проверить, является ли this.route.name === 'edit' => fetch (itemAPI).Название состояния маршрута в React + Redux
Один из вариантов - написать редуктор/действие для создания состояния «edit» в моем магазине redux, но мне было интересно, если это лучшая практика, и если есть более простой способ проверить, где я нахожусь в приложении (какой маршрут).
Мои маршруты:
<Route component={ItemNew} path='/items/edit/:id' />
<Route component={ItemNew} path='/items/new' />
В моей ItemNew компоненте, я хотел бы:
componentDidMount() {
let stateName = this.props.location.state
if(stateName === 'edit') {
this.props.fetchItem() // dispatch API action
}
}
есть способ получить доступ к route.name в Redux состоянии? thx – alexndm
@alexndm Не по умолчанию. Либо вставьте его в состояние, используя крючок (например, 'onEnter' или' componentDidMount'), или посмотрите на что-то вроде [redux-simple-router] (https://github.com/rackt/redux-simple-router) или [перевождь-маршрутизатор] (https://github.com/acdlite/redux-router) –