С Новым годом! Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
 Аватар для w_mark_w
14 / 3 / 1
Регистрация: 14.01.2019
Сообщений: 52

Роутинг React.js

14.07.2021, 13:22. Показов 2333. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте! Возник вопрос: как работать с многоуровневой маршрутизацией. У меня компонент не отрисовывается, да и я не понял как вообще работать правильно с маршрутизацией.

Т.е. если у нас родительский компонент меню и под ним появляются остальные компоненты - это я понимаю и получается так сделать, но как сделать, чтобы при клике на ссылку родительский компонент перерисовывался на дочерний. А в дочернем компоненте есть ссылка на родительский компонент, т.е. подняться на уровень выше.

Приведите пример пожалуйста.

Прилагаю еще явный набросок того, что я конкретно хочу сделать.
Кликните здесь для просмотра всего текста


0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.07.2021, 13:22
Ответы с готовыми решениями:

Не работает роутинг в продакшене create-react-app
Добрый день, Не работает роутинг в продакшен режиме create-react-app, в деве все нормально работает, подскажите пожалуйста что...

Посоветуйте практический курс на React redux/ react
Всем привет. Столкнулся с тем, что мне не хватает практики. Подскажите какой практический курс по реакту. типо...

Разница между React и React native
Я хочу начать освоение React для фрондента, но при этом хотел бы иметь возможность писать мобильные приложения. И поэтому у меня вопрос:...

4
 Аватар для Ovederax
604 / 404 / 212
Регистрация: 30.04.2017
Сообщений: 744
Записей в блоге: 1
14.07.2021, 18:34
Лучший ответ Сообщение было отмечено w_mark_w как решение

Решение

Ну допустим под пунктами понимается некие статические адреса,
можно конечно и динамические сделать роутинги,
и из текущего пути вытаскивать родительскую часть чтобы не писать url в back каждый раз
но я думаю это мелочик
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import React, { Component } from 'react';
import { render } from 'react-dom';
import {
  Switch,
  Route,
  BrowserRouter,
  Router,
  Link,
  browserHistory,
  withRouter
} from 'react-router-dom';
import { createBrowserHistory } from 'history';
 
const history = createBrowserHistory();
 
const Flex = ({ children }) => {
  return (
    <div style={{ display: 'flex', flexDirection: 'column' }}>{children}</div>
  );
};
 
// Routings
const MAIN_ROUTE = '/';
const PUNCT = '/punct';
 
const PUNCT_ONE = `${PUNCT}/1`;
const PUNCT_ONE_ONE = `${PUNCT_ONE}/1`;
const PUNCT_ONE_TWO = `${PUNCT_ONE}/2`;
 
const PUNCT_TWO = `${PUNCT}/2`;
 
const Default = () => {
  return (
    <div>
      <p>default</p>
      <Link to="/punct">пункт</Link>
    </div>
  );
};
 
const PunctOne = () => {
  const Back = () => <Link to={PUNCT_ONE}>Назад</Link>;
 
  return (
    <Switch>
      <Route path={PUNCT_ONE_ONE} component={Back} />
      <Route
        path={PUNCT_ONE_TWO}
        component={() => (
          <Flex>
            <span>punct 1.2</span>
            {<Back />}
          </Flex>
        )}
      />
 
      <Flex>
        <Link to={PUNCT_ONE_ONE}>пункт 1.1</Link>
        <Link to={PUNCT_ONE_TWO}>пункт 1.2</Link>
        <Link to={PUNCT}>Назад</Link>
      </Flex>
    </Switch>
  );
};
 
const Punct = () => {
  const Back = () => <Link to={PUNCT}>Назад</Link>;
 
  return (
    <Switch>
      <Route path={PUNCT_ONE} component={PunctOne} />
      <Route
        path={PUNCT_TWO}
        component={() => (
          <Flex>
            <span>punct 2</span>
            {<Back />}
          </Flex>
        )}
      />
 
      <Flex>
        <Link to={PUNCT_ONE}>пункт 1</Link>
        <Link to={PUNCT_TWO}>пункт 2</Link>
        <Link to={MAIN_ROUTE}>Назад</Link>
      </Flex>
    </Switch>
  );
};
 
class App extends Component<AppProps, AppState> {
  render() {
    return (
      <BrowserRouter>
        <Switch>
          <Route path={PUNCT}>
            <Punct />
          </Route>
          <Route path="/">
            <Default />
          </Route>
          <Route component={Default} />
        </Switch>
      </BrowserRouter>
    );
  }
}
 
render(<App />, document.getElementById('root'));
1
 Аватар для w_mark_w
14 / 3 / 1
Регистрация: 14.01.2019
Сообщений: 52
14.07.2021, 22:19  [ТС]
У меня еще вопрос: если бы были в каждом подпункте чекбоксы, то как сохранить их состояние при переключении страниц. Использовать localstorage?
0
 Аватар для Ovederax
604 / 404 / 212
Регистрация: 30.04.2017
Сообщений: 744
Записей в блоге: 1
15.07.2021, 07:00
Лучший ответ Сообщение было отмечено w_mark_w как решение

Решение

Цитата Сообщение от w_mark_w Посмотреть сообщение
У меня еще вопрос: если бы были в каждом подпункте чекбоксы, то как сохранить их состояние при переключении страниц. Использовать localstorage?
да, можно так, если не нужно хранить состояние на сервере
1
 Аватар для w_mark_w
14 / 3 / 1
Регистрация: 14.01.2019
Сообщений: 52
15.07.2021, 08:09  [ТС]
Да, я хочу потом отправлять get запрос на сервер с данными из чекбоксов. Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.07.2021, 08:09
Помогаю со студенческими работами здесь

Несовместимость React-Router и React-Bootstrap
Добрый день, Пишу маленький проект и в качестве дизайна решил использовать React-Bootstrap. При создании Навигации сайта использовал...

react/ react hook с Rxjs
Здравствуйте. Столкнулся с проблемой изучения библиотеки RxJs. У меня есть ТЗ, создать секундомер. Но проблема в том, что не могу...

React Js
Добрый день, хочу получить пару советов и наставлений от людей, которые имеют достаточно много опыта в JS, HTML и CSS и т.п. Дело в том,...

React и clearInterval
Добрый день! &lt;div onClick={this.start.bind(this)}&gt;старт&lt;/div&gt; &lt;div onClick={this.stop.bind(this)}&gt;стоп&lt;/div&gt; ...

Props в react
В документации react есть такой пример function formatDate(date) { return date.toLocaleDateString(); } function Comment(props)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru