Size: a a a

React: русскоязычное сообщество

2021 January 09

VL

Vitaly Logvinenko in React: русскоязычное сообщество
Dmitry Kozlov
Всем привет!
Как можно реализовать, чтобы при каждом клике отображались названия цветов а не буквы названия последнего цвета (grey), Объяснил не понятно, знаю..По ссылке надеюсь поймете:
https://codesandbox.io/s/strange-morning-ritvc
colors[index].name
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in React: русскоязычное сообщество
Ребят, подскажите логику открытий/закрытий модального окна.

Когда модальное окно открыто, появляется затемнённая плажка и по центру белый блок в которой и находится контент.

При нажатии на кнопку в компоненте, должно открываться модальное окно. А закрываться оно должно нажатием на эту затемнённую плажку.

Модальное окно и компонент, в котором оно открывается находятся в разных файлах.
источник

D

Dima in React: русскоязычное сообщество
прокидывай коллбек функцию, которая закрывает модалку
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in React: русскоязычное сообщество
У меня сейчас так.
Использую хук useState.
И, при клике на кнопку меняется булеан значение с false на true. Изначально false. А потом при нажатии на true.
То есть не !bool, а именно true.

И, если true, то показываю этот компонент, в котором модальное окно.

И в том компоненте еще один useState. С такой же логикой при нажатии на затемнённую плажку.
Если false
return false
Иначе показывается модальное окно.

Но в таком случае, повторно открыть модальное окно невозможно
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in React: русскоязычное сообщество
Dima
прокидывай коллбек функцию, которая закрывает модалку
Не понял
источник

D

Dima in React: русскоязычное сообщество
ты можешь прокинуть в компонент проп isOpen
и в зависимости от него делать что нужно
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in React: русскоязычное сообщество
Dima
ты можешь прокинуть в компонент проп isOpen
и в зависимости от него делать что нужно
Пропсы получит компонент, в котором модальное окно?
источник

D

Dima in React: русскоязычное сообщество
ну суть в том что у тебя один стейт должен быть, не два
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in React: русскоязычное сообщество
☬ Sᴀʏᴅᴜʟʟᴏ ツ
Пропсы получит компонент, в котором модальное окно?
Но, так не получится.
Так как модальное окно не зависит только от пропсов, у него и свой хук, которое зависит, нажал ли пользователь на черную плажку
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in React: русскоязычное сообщество
Dima
ну суть в том что у тебя один стейт должен быть, не два
Я вот спрашиваю, как сделать лучше. Как именно такую логику реализовать
источник

D

Dima in React: русскоязычное сообщество
покажи код
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in React: русскоязычное сообщество
Он большой
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in React: русскоязычное сообщество
Я думаю, я нормально обьяснил
источник

D

Dima in React: русскоязычное сообщество
у тебя один стейт на верхнем уровне
дальше в компоненты прокидывается только isOpen из твоего стейта
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in React: русскоязычное сообщество
Dima
у тебя один стейт на верхнем уровне
дальше в компоненты прокидывается только isOpen из твоего стейта
А как потом обратно?
источник

D

Dima in React: русскоязычное сообщество
обратно что?
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in React: русскоязычное сообщество
Если нажали на затемнённую плажку
источник

D

Dima in React: русскоязычное сообщество
прокидывай в этот компонент пропс onClick={() => { setIsOpen(false) }}
источник

H

Heart in React: русскоязычное сообщество
Переслано от Lider
Киньте ссылку на сайт или демо где есть Модальное окно - Но не простой:
1) При появлении мод. окна страница не прокручивается
2) Есть кнопка закрытии "х". При нажатии окно закрывается и не прыгает вверх, т.е. все остается на своих местах
3) При нажатии на маску тоже исчезает мод. окно и не прыгает страница.

ПОЖАЛУЙСТА подскажите если знаете такой сайт / демо . Спасибо!!!
источник

H

Heart in React: русскоязычное сообщество
Переслано от ☬ Sᴀʏᴅᴜʟʟᴏ ツ...
Ребят, подскажите логику открытий/закрытий модального окна.

Когда модальное окно открыто, появляется затемнённая плажка и по центру белый блок в которой и находится контент.

При нажатии на кнопку в компоненте, должно открываться модальное окно. А закрываться оно должно нажатием на эту затемнённую плажку.

Модальное окно и компонент, в котором оно открывается находятся в разных файлах.
источник