в редакс.
Начал это пробовать делать впервые и сразу же столкнулся с рядом неприятностей, и первый самый главный вопрос: Если у меня есть мапящийся компонент, а в нем есть стейт openWindow, который вызывает открытие выпадающего окна конкретной мапящейся карточки, то как же мне его вынести в редакс, он жеЖ тогда станет глобальным и по клику будут открываться все выпадающие окна у всех карточек.
Как быть в такой ситуации?
Привет привет! Отличный вопрос, давай разбираться вместе! Перенос бизнес-логики в Redux - это хорошая практика, которая позволяет управлять состоянием приложения централизованно. Однако, есть случаи, когда не все состояние должно быть перенесено в Redux, и это касается и мапящихся компонентов с локальным состоянием. В твоем случае, если каждый компонент должен иметь свое собственное состояние открытия окна, переносить этот стейт в Redux может привести к проблемам, потому что он будет глобальным. Вместо этого, я рекомендую сохранить состояние открытия окон внутри каждого компонента самостоятельно, используя локальный компонентовый стейт. Это называется "локальное состояние" или "локальный стейт". Вот как ты можешь это сделать: import React, { useState } from 'react'; const MyComponent = () => { const [openWindow, setOpenWindow] = useState(false); const handleButtonClick = () => { setOpenWindow(!openWindow); }; return ( <div> <button onClick={handleButtonClick}>Toggle Window</button> {openWindow && <div>Мое выпадающее окно</div>} </div> ); }; export default MyComponent; В этом примере мы используем useState из React для создания локального состояния openWindow и функции setOpenWindow, которая позволяет изменять это состояние. При каждом клике по кнопке, вызывается handleButtonClick, чтобы переключить openWindow между true и false. В зависимости от значения openWindow, мы рендерим или скрываем выпадающее окно. Таким образом, каждая карточка будет иметь свое собственное локальное состояние openWindow, и при клике на кнопку будет открываться только соответствующее окно. Важно отметить, что не всегда нужно переносить все состояние в Redux. Локальное состояние хорошо подходит для компонентов, которые имеют только приватные изменяемые данные. Надеюсь, это поможет тебе в работе с бизнес-логикой и состоянием в React! Если у тебя есть еще вопросы, не стесняйся задавать. Я здесь, чтобы помочь!
Спасибо большое, щас буду пробовать!
chatgpt залогинься
у меня так и сделано, вопрос как раз и был, как такое в редакс затолкать, но судя по фразе "Важно отметить, что не всегда нужно переносить все состояние в Redux. Локальное состояние хорошо подходит для компонентов, которые имеют только приватные изменяемые данные." - никак :(
Юрий, можно узнать ваше компетентное мнение по этому вопросу, раз уж вы здесь ?:)
Ты реально не понял что это нейронка?
Где тут бизнес логика?
Да как-то подвоха не ожидал)
Приветствую! ) Так как нет четкого определения бизнес-логики, боюсь, что я мог "неправильно выразиться" :)
Но хотелось бы версию услышать хотя бы
Насколько я понимаю, это логика связанная конкретно с данными с бэкэнда и их обработкой, и да, скорее всего это наверное не относится к работе выпадающего списка карточки
Касаемо твоего вопроса про визуальное состояние определенного виджета никак не является бизнес логикой, бизнес логика это нечто больше чем просто вкл/выкл, бизнес логика это логика для построения отношений непосредственно с пользователем, то что пользователь запрашивает и за чем собстевенно пользователь пришел на твою платформу это и является бизнес логика, показать или скрыть виджет к этому не относится, даже если ты засунешь состояние виджета вкл/выкл в глобальный стейт это не сделает его частью бизнес логики, а вот настройки профиля пользователя как раз и является тем что мы можем отнести к бизнес-логике
Я здесь, чтобы помочь!
мы так и поняли))
Массив с открытыми айдишками кладешь в редакс и всё
У меня только одно окно должно быть открыто. В общем-то наверное да, таким способом тоже можно, но похоже, что необязательно. Но спасибо за идею
Ну тогда хранить одну открытую айдишку, ну
А я вот не думаю, что это нужно в редакс выносить
В этом конкретном кейсе может и не обязательно, но подобные кейсы ты ещё встретишь в своей жизни, и решение будет таким
Обсуждают сегодня