Size: a a a

React — русскоговорящее сообщество

2021 March 17

VK

Vladimir Klimov in React — русскоговорящее сообщество
Eugen Vinnikov
Ребята, всем привет. Кто работал с хуками. Подскажите плиз как мне запомнить функцию в useRef ?
useRef(function)
источник

SA

S. A. M. in React — русскоговорящее сообщество
Vladimir Klimov
На кой хрен, простите, хранить код в базе?
писать например конструктор, ну и да согласен это излишне😐
источник

XX

Xodor Xodorenko in React — русскоговорящее сообщество
Green Orange
Хок покажи
источник

XX

Xodor Xodorenko in React — русскоговорящее сообщество
Green Orange
Хок покажи
функция точно вызывается
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
S. A. M.
писать например конструктор, ну и да согласен это излишне😐
Технически это возможно, если хранить чанки в базе и делать к ним динамические импорты, но я бы уволился, наверное, быстрее
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Vladimir Klimov
На кой хрен, простите, хранить код в базе?
что бы попасть в ебанутые смс из жс чатов🌚
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
подскажите, как можно получать state более правильно, чем вызовом StatusServer()

   const StatusServer = () => {
       const counter = useSelector(state => state.user.status)
       return counter
   }

// получаю нужный state так
StatusServer()

но потом у меня идет треш с if-ами (там их больше чем 10), где и идет вызов StatusServer(), чтобы получить число и сравнить его

const ResMessage = () => {
       if (StatusServer() === 3) {
           return (
               <Alert variant="danger">
                   Email на сервисе не существует.
               </Alert>
           )
       } else {
           return(
               <Alert variant="danger">
                   Произошла ошибка, попробуйте еще раз.
               </Alert>
           )
       }
     }
источник

XX

Xodor Xodorenko in React — русскоговорящее сообщество
Green Orange
Хок покажи
это получается уже при отрисовке ,после вызова такое
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Андрей Дрозд
подскажите, как можно получать state более правильно, чем вызовом StatusServer()

   const StatusServer = () => {
       const counter = useSelector(state => state.user.status)
       return counter
   }

// получаю нужный state так
StatusServer()

но потом у меня идет треш с if-ами (там их больше чем 10), где и идет вызов StatusServer(), чтобы получить число и сравнить его

const ResMessage = () => {
       if (StatusServer() === 3) {
           return (
               <Alert variant="danger">
                   Email на сервисе не существует.
               </Alert>
           )
       } else {
           return(
               <Alert variant="danger">
                   Произошла ошибка, попробуйте еще раз.
               </Alert>
           )
       }
     }
const ResMessage = () => {
const status = useSelector(state => state.user.status)

       if (state.user.status === 3) {
           return (
               <Alert variant="danger">
                   Email на сервисе не существует.
               </Alert>
           )
       } else {
           return(
               <Alert variant="danger">
                   Произошла ошибка, попробуйте еще раз.
               </Alert>
           )
       }
     }
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Maxim Koylo
const ResMessage = () => {
const status = useSelector(state => state.user.status)

       if (state.user.status === 3) {
           return (
               <Alert variant="danger">
                   Email на сервисе не существует.
               </Alert>
           )
       } else {
           return(
               <Alert variant="danger">
                   Произошла ошибка, попробуйте еще раз.
               </Alert>
           )
       }
     }
ну и более правильно вынести state => state.user.status в селектор
источник

L

Lewy in React — русскоговорящее сообщество
Тимофей 🛴
https://codesandbox.io/s/cranky-mcclintock-4843p?file=/src/Components/ServiceItem.js

вот я просто скопировал логику из того что ты скинула, все ок

но вот эффект второй, где setOffsetClass лучше заменить на useMemo
спасибо огромнейшее! буду теперь разбираться)
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
Maxim Koylo
ну и более правильно вынести state => state.user.status в селектор
спасибо! иду переваривать
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Андрей Дрозд
спасибо! иду переваривать
то что ты назвал StatusServer это у тебя кастомный хук, их надо называть с use, например useServerStatus()

правила все те же как и с хуками и функциями

тоесть
const status = useServerStatus()
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Андрей Дрозд
спасибо! иду переваривать
только в даном случаее кастом хук для одно юзСелектор скорее как оверхед
источник

SA

S. A. M. in React — русскоговорящее сообщество
Vladimir Klimov
Технически это возможно, если хранить чанки в базе и делать к ним динамические импорты, но я бы уволился, наверное, быстрее
хмм
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
S. A. M.
хмм
Не надо так делать
Храните не код, а конфигурацию, данные, на основе которых можно генерировать разметку и т.п.
источник

SA

S. A. M. in React — русскоговорящее сообщество
Vladimir Klimov
Не надо так делать
Храните не код, а конфигурацию, данные, на основе которых можно генерировать разметку и т.п.
да я понял, просто была только мысль можно ли так делать
источник

АМ

Алексей Медведев... in React — русскоговорящее сообщество
как сменить список диалогов на список сообщений в media запросе? список сообщений щас c display none
источник

АМ

Алексей Медведев... in React — русскоговорящее сообщество
источник

ИЕ

Иван Егоров... in React — русскоговорящее сообщество
Можно через useMediaQuery, если компоненты функциональные, как вариант.
https://material-ui.com/ru/components/use-media-query/
источник