169 похожих чатов

Всем привет, подскажите пожалуйста. Возник вопрос, на уровне управления состоянием,

пока еще не подключал редакс, но нужно дать возможность другой странице приложения использовать данные:

Сейчас:

const Home = () => {
const [formatData, setFormatData] = useState({});

const [todos, setTodos] = useState(toDos);

useEffect(() => {
const dateKeys = ["weekday", "day", "month", "year"];
(function () {
const ruDate = new Intl.DateTimeFormat("ru", {
day: "2-digit",
month: "long",
year: "numeric",
weekday: "long",
})
.format(new Date())
.replace(/,/, "")
.replace(/в/, "В")
.replace(/с/, "С")
.replace(/\sг./, "")
.split(" ");

const result = Object.assign(
...dateKeys.map((k, i) => ({ [k]: ruDate[i] }))
);
setFormatData(result);
})();
}, []);

Управление состоянием находится на уровне компонента Home

Нужно передать его в компонент NewToDo, будет ли говнокодом поднять состояние на уровень выше в компонент Route:

const Router = (props) => {
return (
<div>
<BrowserRouter>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/new" component={NewToDo} />>
<Route component={NotFound} />
</Switch>
</BrowserRouter>
</div>
);
};

И передавать уже данные через пропс в Home и в NewToDo
Или же это говнокод и уже подключать редакс для управление глобальным состоянием?

6 ответов

12 просмотров

в компонент route точно нет, я обычно в роут компоненты ложу оберточные компоненты page (HomePage,NewToDoPage,NotFoundPage) удобно, чтобы модалки какие то туда положить, лайауты разные использовать и т д. Ну это в целом совет А по вопросу, думаю тут редакс нужен

John-Kanegem Автор вопроса

Спасибо, а то я увидел данный код, и тут явно показали что это типо тру

Я как бы не профи но если использовать состояние в компонентах то лучше что бы оно было в одном главном, так что я думаю норм...и как бы ничего не мешает использовать context без всяких redux

Все в app.js хранить? Такое себе решение для читаемости кода, там обычно минимальынй код. Роуты, провайдеры, лайаут(общий) , оберточные компоненты для либ (как локализация ant например)

Все же в контексте... если это первый домашний проект и 3 компонента то норм

https://github.com/inzarubin80/btb/blob/master/src/App.js

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

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Карта сайта