@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, на адрес /. Но адрес ведь нужно чтобы менялся.

Спасибо за внимание!
  • Вопрос задан
  • 380 просмотров
Решения вопроса 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 (был просто пустой). Будьте внимательны!)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы