Задать вопрос
@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 месяца
    Далее
  • Merion Academy
    Frontend-разработка на React
    4 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
Решения вопроса 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 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽