React-маршрутизатор не перемонтирует компонент по разным путям ⇐ Javascript
-
Гость
React-маршрутизатор не перемонтирует компонент по разным путям
В моем приложении реагирования есть компонент, который представляет собой форму. Форма используется для создания новых лицензий ИЛИ редактирования существующих лицензий. В любом случае это только один компонент, и он проверяет компонентDidMount(), какой это «pageType» (добавление/обновление). Теперь о моей проблеме: когда я использую форму для редактирования лицензии (лицензиат/:id/редактировать) и нажимаю кнопку, которая является биде, чтобы создать новую лицензию (лицензиат/добавить), она не перемонтирует компонент. URL-адрес изменится, но все предварительно загруженные данные останутся в форме.
LicenseeForm = Loadable({ загрузчик: () => import('./license/LicenseeForm'), loading: 'Загрузка..' }); оказывать() { возвращаться ( ) } const PrivateRoute = ({компонент: Component, ...rest}) => ( authService.checkIfAuthenticated() ? (): ( ) } /> ); Компонент:
comComponentDidMount() { const locationParts = this.props.location.pathname.split('/'); if (locationParts[locationParts.length-1] === 'добавить') { this.setState({pageType: 'add'}); } else if (locationParts[locationParts.length-1] === 'обновление') { this.setState({pageType: 'update'}); ... }} ИЗМЕНИТЬ Вот как это работает сейчас:
В моем приложении реагирования есть компонент, который представляет собой форму. Форма используется для создания новых лицензий ИЛИ редактирования существующих лицензий. В любом случае это только один компонент, и он проверяет компонентDidMount(), какой это «pageType» (добавление/обновление). Теперь о моей проблеме: когда я использую форму для редактирования лицензии (лицензиат/:id/редактировать) и нажимаю кнопку, которая является биде, чтобы создать новую лицензию (лицензиат/добавить), она не перемонтирует компонент. URL-адрес изменится, но все предварительно загруженные данные останутся в форме.
LicenseeForm = Loadable({ загрузчик: () => import('./license/LicenseeForm'), loading: 'Загрузка..' }); оказывать() { возвращаться ( ) } const PrivateRoute = ({компонент: Component, ...rest}) => ( authService.checkIfAuthenticated() ? (): ( ) } /> ); Компонент:
comComponentDidMount() { const locationParts = this.props.location.pathname.split('/'); if (locationParts[locationParts.length-1] === 'добавить') { this.setState({pageType: 'add'}); } else if (locationParts[locationParts.length-1] === 'обновление') { this.setState({pageType: 'update'}); ... }} ИЗМЕНИТЬ Вот как это работает сейчас:
Мобильная версия