Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
250 / 184 / 58
Регистрация: 12.03.2021
Сообщений: 1,043

Redux vs State

02.11.2022, 15:24. Показов 382. Ответов 6

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Написал свой календарь (с возможностью выбора диапазонов дат - месяцев, выбора одного дня-месяца).
Начинал его писать пользуясь стейтом. Когда это дело стало разрастаться и прокидывать значения стало слишком муторно и неудобно, решил вынести это дело в редакс. Всё замечательно, все работает и, даже, правильно.
Но тут возник следующий ньюанс - на одной странице требуется использование нескольких календарей (минимальный пример - выбор диапазона месяцев + выбор конкретной даты). Очистка хранилища при переходе между интерфейсами не была проблемой.
Но теперь столкнулся с тем, что в диапазоне по месяцам используются props.startDate и props.endDate, при выборе даты props.startDate. Казалось бы, можно было выделить новую переменную под выбор конкретной даты, но это только первый момент, в дальнейшем может возникнуть ситуация, когда будут использоваться в рамках одного интерфейса больше календарей или будут однотипные.
Собственно, вопрос - переводить обратно на state или есть какие-нибудь идеи, как по-другому подойти к этому?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2022, 15:24
Ответы с готовыми решениями:

Как правильно обновлять state на основе предыдущего значения state? Какие могут при этом возникнуть проблемы?
Как правильно обновлять state на основе предыдущего значения state? Какие могут при этом возникнуть проблемы? Обновить state на основе...

Redux+React. Взаимодействие redux store с сервером
Помогите понять такой момент: Приложение react+redux+ сервер на ноде. Пока не использовал сервер работа redux store была более-менее...

Adodb Connection state 1, ADODB Recordset state 0
добрый день. подскажите, пожалуйста, в чем может быть проблема? ошибку выдает "вызванный объект был отключен от клиентов" или...

6
 Аватар для bodynar
345 / 307 / 135
Регистрация: 14.03.2015
Сообщений: 1,158
Записей в блоге: 1
02.11.2022, 15:56
Лучший ответ Сообщение было отмечено Splaisto как решение

Решение

Splaisto, А что вам мешает изменить структуру вашего состояния приложения? Например каждый календарь - некий конфиг, а в общем состоянии хранится массив этих конфигов

Ну или же приложите корневой компонент с подключением вашего календарика и укажите его конфигурацию, а также структуру состояния
2
250 / 184 / 58
Регистрация: 12.03.2021
Сообщений: 1,043
02.11.2022, 16:07  [ТС]
Цитата Сообщение от bodynar Посмотреть сообщение
Например каждый календарь - некий конфиг, а в общем состоянии хранится массив этих конфигов
собственно, спустя 10 минут с создания темы, пришел к этой мысли) спасибо, можно закрывать.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3838 / 1683 / 431
Регистрация: 14.03.2022
Сообщений: 4,269
02.11.2022, 16:10
Цитата Сообщение от Splaisto Посмотреть сообщение
как по-другому подойти к этому?
Мне думается что календарь должен быть как некая "коробочка", которая стартует по данным из пропсов.
А вот результат своей работы может передать некой функции, которую так же может получать в пропсах.

Т.о. сам календарь можно писать на любом хранилище состояний.
Его вызвали... Он отработал... Результат передал в функцию. А уже эта функция пусть пихает/использует результат дальше, как ей будет удобно.
0
250 / 184 / 58
Регистрация: 12.03.2021
Сообщений: 1,043
02.11.2022, 16:20  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Его вызвали... Он отработал... Результат передал в функцию. А уже эта функция пусть пихает/использует результат дальше, как ей будет удобно.
да, но когда в рамках одного интерфейса реюзается, пользователю будет неудобна автоподставнока данных от одного к другому. скажем, указали диапазон в первом, изменили во-втором, открыли первый, там данные из второго. вот этого хотелось избежать.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3838 / 1683 / 431
Регистрация: 14.03.2022
Сообщений: 4,269
02.11.2022, 16:44
Цитата Сообщение от Splaisto Посмотреть сообщение
скажем, указали диапазон в первом, изменили во-втором, открыли первый, там данные из второго. вот этого хотелось избежать.
Так это уже как напишешь...
При "отдачи" данных можно ведь "обнулять" состояние календаря. Тогда любой его "старт" будет начинаться с одного и того же вида.
0
250 / 184 / 58
Регистрация: 12.03.2021
Сообщений: 1,043
03.11.2022, 09:11  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
При "отдачи" данных можно ведь "обнулять" состояние календаря.
согласен. но со стороны ux не очень, если ты выбрал даты в первом, потом открываешь его опять, а там пусто ну, главное разобрались, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2022, 09:11
Помогаю со студенческими работами здесь

Использование Redux
Решил разобраться с redux и взял самую простую страничку проекта. Но как не старался, я не смог понять как воспользоваться им. Можете дать...

React/Redux
Привет, На интервью спросили и я незнаю правильноли я выкрутился. 1. Можно в props передавать func Тут я какбы ничего незнаю,...

Запуск redux
Как запустить, чисто redux? Только, webpack(или другой сборщик) настраивать или можно по проще?

Redux-saga
У меня есть файл с API запросами на локальный сервер import * as axios from "axios"; class Api { constructor() { ...

Redux Toolkit
Добрый день! Использую в проекте Redux Toolkit. //orderActions.ts export const changeEye = (eye: string) => { return...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru