Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для BarsicPlus
11 / 11 / 2
Регистрация: 21.05.2014
Сообщений: 31

Redux. Регистрация состояние стора, исходя из композиции компонентов

07.08.2018, 12:32. Показов 1277. Ответов 3

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, помогите пожалуйста понять, как правильно реализовать задачу, которую одна компания дает на своих технических интервью.

Суть проблемы: нужно сделать программу, на подобии todo list, но элементы нужно инициализировать в JSX.
А их дефолтные параметры (например, checked, completed) можно определять как в JSX, так и в Redux Store.

Вот например так должна выглядеть инициализация:

JavaScript
1
2
3
4
5
6
7
8
9
<TodoGroup groupName="shop">
    <TodoItem group="shopping" active={true} />
    <TodoItem active={true} />
</TodoGroup>
<TodoGroup>
    <TodoItem group="home" />
    <TodoItem group="shopping" />
    <TodoItem active={true} />
</TodoGroup>
Элемент todo наследует свой group из атрибута groupName группы TodoGroup

Насколько я понял, JSX должен каким-то образом зарегистрированным в store. Но я не понимаю как это можно реализовать.
В своей практике по Redux я все делаю через store. Например я бы реализовал все todo в массиве, и этот массив можно было бы рендерить в JSX.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.08.2018, 12:32
Ответы с готовыми решениями:

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

Anchors, Align и размещение компонентов исходя из размера формы
Сабж. Есть кнопки на форме, в таком виде: Ну и соответственно при разных размерах кнопки должны изменять свой размер и...

Как определить высоту формы, исходя из находящихся на ней компонентов?
Доброго времени суток! У меня вопрос: Вот допустим у меня на HTML-странице есть форма, на ней кнопки, картинки и.т.д. Но допустим на ней...

3
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
07.08.2018, 15:15
какая-то упопротая задача, ) но кто бы мог подумать...

https://spin.atomicobject.com/... dux-props/
https://stackoverflow.com/ques... -component

mapStateToProps and mapDispatchToProps both take ownProps as the second argument.
https://github.com/reduxjs/rea... ps-options
1
 Аватар для BarsicPlus
11 / 11 / 2
Регистрация: 21.05.2014
Сообщений: 31
08.08.2018, 12:00  [ТС]
Evgen1337, спасибо большое! Я теперь вроде разобрался более-менее.
То есть вся суть в ownProps, который и позволяет получить доступ к данным компонента.

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

1. Я не очень хорошо понимаю смысл вот такой реализации, когда элементы отделены и находятся и в JSX и в Store. Притом в JSX - приоритет.
в статье, что вы сбросили, не было толком сказано для чего такое делать, но было написано: вам понадобится действительно веская причина для этого.

2. Каким образом управлять todo элементами в store? Получается нам нужно вручную также создавать эти самые элементы в массиве store, чтобы потом перезаписывать атрибуты с store вместо ownProps ... А если мы создадим больше элементов в store? По сути, мы не можем их отрендерить, потому что отображаться могут только те, которые вручную написаны в JSX.

3. Здесь еще сказано о реализации drag 'drop. То есть todo элементы должны перетягуватися с одной группы в другую. Это вообще реально сделать, если у нас JSX не может изменяться в принципе?
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
08.08.2018, 13:31
Лучший ответ Сообщение было отмечено BarsicPlus как решение

Решение

BarsicPlus, Ок,

1-2) в стать скорее был подход, что store это что-то общее, что используют компоненты(группа), и когда компонент меняет свойство, можно получить другие данные для этого свойства. ну да, здесь задача начинается с того вот вам разметка, и думайте, а как она появилось, у меня нет вводных данных. А если нет вводных данных, можно предположить, что это какой-нибудь HOC(хок), и он инжектит в этот jsx ) дефолтные значения... или что можно использовать эти компоненты, как лист в store, либо просто напрямую через jsx...

3) http://react-dnd.github.io/react-dnd/ - юзает редакс

list1
{
id: 1,
id: 2
}

list2
{
id: 3,
id: 4
}

когда происходит дроп, например id:4 из одного листа удаляем в другом вставляем. ну и соответственно рендерер все сделает как надо.

Добавлено через 2 минуты
https://spin.atomicobject.com/... dux-props/

Very easy if you know you’ll always need a specific piece of state for any instance of the component.

For reusable components, it won’t be that easy. Say you need to write a presentational component to be a list item, and that list is represented in the state tree
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.08.2018, 13:31
Помогаю со студенческими работами здесь

Регистрация компонентов
Добрый день всем! Есть старенький проект, написанный еще в 2003 году на Visual Basic 6.0, проект писал сотрудник отдела разработчиков,...

SetUp и регистрация компонентов
Есть код, который использует ActiveX Component(создается Virtual Serial Port AX). Мне надо при setup зарегистрировать этот компонент, т.е....

Регистрация компонентов .NET
Что нужно сделать, чтобы мой компонент (в терминах .NET) стал доступен всем в системе (возможно и в ЛВС)? Как потом получить к нему...

Запомнить текущее состояние компонентов (для таймера)
Возможно ли? Поясню: Есть, допустим, StringGrid1 с двумя строками, вторая пустая, есть StringGrid2, допустим, тоже с двумя строками, вторая...

Регистрация компонентов без прав админа
Доброго времени суток, форумчане! Столкнулся со следующей проблемой. На работе у пользователей нет прав админа. Как без прав...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю 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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru