Задать вопрос
@kolejium
Программист .NET, увлекаюсь дизайном и 3D графикой

React Router 4. (Switch/Route/Redirect). Как при перенаправлении перейти на Route в этом же Switch'e?

Привет ребята!
Есть компонент Категория. Это родительский компонент (! не наследование !просто перенаправляет на них с передачей свойств) для FormCategory&ListCategory. У обоих компонентов свои базовые классы - FormComponent&ListComponent - в который лежит общая логика.
Код категории (метод рендер):
render() {
        return <Switch>
            <Route path='/category/list' render={() => this.getCategoryListWithBinding()} />
            <Route path='/category/form/:id' render={() => this.getCategoryFormWithBinding()} />
        </Switch>
    }

Код App:
render() {
      return (
          <Layout>
              <Switch>
                  <Route exact path='/' component={Home} />
                  <Route path='/counter' component={Counter} />
                  <Route path='/fetchdata' component={FetchData} />
                  <Route path='/category' history={this.history} component={CategoryComponent} />
                  <Route path='/products' history={this.history} component={ProductComponent} />
              </Switch>
          </Layout>
    );
  }

При вызове /category/list & /category/form все работает нормально. Но, мне нужно, чтобы если я захожу на /category, меня перебрасывало на /category/list c параметрами/настройками компонента - передаются адреса доступа к серверу.
Грубо говоря, единственное, что приходит в голову, это сделать редирект на самого себя и как-то поменя ручками location, но это как... глупо по-моему.
Был вариант, 3 Route, вместо Redirect, продублировать Route к /category/list, на адрес /. Но адрес ведь нужно чтобы менялся.

Спасибо за внимание!
  • Вопрос задан
  • 382 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • Академия Eduson
    React-разработчик
    2 месяца
    Далее
Решения вопроса 2
rockon404
@rockon404 Куратор тега React
Frontend Developer
render() {
  return (
    <Switch>
      <Route path='/category/list' render={() => this.getCategoryListWithBinding()} />
      <Route path='/category/form/:id' render={() => this.getCategoryFormWithBinding()} />
      <Redirect to='/category/list' />
    </Switch>
  );
}
Ответ написан
@kolejium Автор вопроса
Программист .NET, увлекаюсь дизайном и 3D графикой
Оказалось, случайно забыл переопределить/убрать shouldComponentUpdate (был просто пустой). Будьте внимательны!)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
от 250 000 до 300 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽