|
4 / 4 / 1
Регистрация: 26.03.2023
Сообщений: 153
|
||||||
Как правильно передать setState от ребенка к родителю05.04.2024, 21:41. Показов 2641. Ответов 37
Всем привет. Мне нужно передать функцию setImages из компонента CardSlider (ребенка) компоненту Card (родителю). Вот часть моего кода:
У меня в итоге то все работает, но чувство, что я написал кучку какашек меня никак не покидает. Помогите пожалуйста понять правильным ли решением я воспользовался
0
|
||||||
| 05.04.2024, 21:41 | |
|
Ответы с готовыми решениями:
37
Как передать из попап окна родителю переменную? Как передать родителю из iframe параметр средствами jQuery вкладки (табы) передать значение родителю |
|
3864 / 1769 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
|
|||||||||
| 11.04.2024, 15:00 | |||||||||
|
Ты уже сделал первый, осмысленный шаг к решению своей проблемы. Сейчас сварганю некий вариант решения... ![]() Добавлено через 14 минут Кликните здесь для просмотра всего текста
Я немного подделал твой пример под свое понимание стиля написания кода. После изменения images ты не увидишь в консоли сообщений о рендере CardProperty. ![]() Добавлено через 6 минут Еще совет... Такие вот "куски" ![]() Тогда меморизовать нужно будет только его, а не CardProperty.И сам материнский компонент будет более компактен.
0
|
|||||||||
|
4 / 4 / 1
Регистрация: 26.03.2023
Сообщений: 153
|
||
| 11.04.2024, 15:32 [ТС] | ||
|
Я знаю, что так лучше не делать и я думаю, что сделаю рефакторинг (вроде это называется рефакторингом, а не декомпозицией, я путаю эти термины), но почему когда я объявляю компоненты внутри компонента Card и также как и ты использую мемоизацию, то у меня ничего не работает?
0
|
||
|
3864 / 1769 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
|
||
| 11.04.2024, 15:53 | ||
0
|
||
|
4 / 4 / 1
Регистрация: 26.03.2023
Сообщений: 153
|
|
| 11.04.2024, 15:55 [ТС] | |
|
Почему я создаю новые компоненты?
0
|
|
|
3864 / 1769 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
|
||
| 11.04.2024, 16:17 | ||
Card)?Как минимум - это вызов функции Card().Что делается в этой функции - как минимум создаются (каждый раз) значения для переменных (в твоем случае CardProperty и пр.)
0
|
||
|
4 / 4 / 1
Регистрация: 26.03.2023
Сообщений: 153
|
|
| 11.04.2024, 16:20 [ТС] | |
|
Но рендер компонента Card происходит только один раз: при первом рендеринге Card, нет?
0
|
|
|
3864 / 1769 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
|
||||||||
| 11.04.2024, 16:27 | ||||||||
Card.Первый раз когда страница создана... И каждый раз - когда жмут на кнопку Add Image. ![]() Вот сварганил тебе "альтернативный вариант", если прям так прет создавать компоненты внутри других компонентов... ![]() Кликните здесь для просмотра всего текста
0
|
||||||||
|
4 / 4 / 1
Регистрация: 26.03.2023
Сообщений: 153
|
|
| 11.04.2024, 16:30 [ТС] | |
|
Я думал, что ререндер, это именно заново исполняется блок render (), но видимо при ререндере компонент начинает заново создавать всё переменные и сущности до блока render или я что-то снова не понял (
0
|
|
|
3864 / 1769 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
|
|
| 11.04.2024, 16:33 | |
|
Что за "блок render ()"?
![]() Добавлено через 1 минуту samiroutka, рендер функционального компонента - это вызов функции, которой он был описан. А далее все работает "как в обычной функции". Никакой разницы нет.
0
|
|
|
4 / 4 / 1
Регистрация: 26.03.2023
Сообщений: 153
|
|
| 11.04.2024, 16:33 [ТС] | |
|
Ой, не render, а return (уже крыша едет)
0
|
|
|
3864 / 1769 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
|
||
| 11.04.2024, 16:38 | ||
return дойдет - будет выполняться каждая строка внутри функции...
0
|
||
|
4 / 4 / 1
Регистрация: 26.03.2023
Сообщений: 153
|
|
| 11.04.2024, 16:42 [ТС] | |
|
Да, я кажется понял. Тогда попробую переписать "нормально". Без вложенных компонентов, а то один раз попробовал вложить компонент в другой и почувствовал свободу от передачи кучи пропсов
0
|
|
|
3864 / 1769 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
|
|
| 11.04.2024, 17:00 | |
|
0
|
|
|
4 / 4 / 1
Регистрация: 26.03.2023
Сообщений: 153
|
|
| 11.04.2024, 17:08 [ТС] | |
|
Контексты я юзал, они не очень удобны. А стейт менеджеры не хочу юзать, чтобы react был чистый что ли. Хочу научиться на чистом реакте писать, думаю это будет полезно
0
|
|
|
3864 / 1769 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
|
||
| 11.04.2024, 17:20 | ||
![]() Стилистически даже интереснее. Но дело хозяйские конечно...
0
|
||
|
250 / 184 / 58
Регистрация: 12.03.2021
Сообщений: 1,043
|
||
| 12.04.2024, 13:06 | ||
|
0
|
||
|
4 / 4 / 1
Регистрация: 26.03.2023
Сообщений: 153
|
|
| 12.04.2024, 13:16 [ТС] | |
|
Ты прав. Но я опять же не говорил что у меня на данный момент в проекте 100500 сущностей, но даже если они появятся, то думаю буду юзать дефолтный контекст
0
|
|
|
4 / 4 / 1
Регистрация: 26.03.2023
Сообщений: 153
|
|
| 13.04.2024, 09:24 [ТС] | |
|
Честно говоря не знаю как (к сожалению), но у меня теперь все работает и без memo. Я просто сделать декомпозицию (вывел все компоненты в отдельные файлы)
0
|
|
| 13.04.2024, 09:24 | |
|
Дочерние процессы должны сгенерировать случайные числа и передать их родителю Как правильно передать указатель на структуру, и правильно ее использовать RestTemplate: как правильно правильно передать JSon Составить описание класса ребенок (Child), в котором задается имя ребенка, имена родителей, дата рождения ребенка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|