Size: a a a

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

2021 January 15

🍏

🍏 in React — русскоговорящее сообщество
Дмитрий
Народ не подскажите почему setState От useEffect может не работать?
Выведи в другом месте консоль, чтобы после обработки посмотреть результат, так он не успевает сэтаться
источник

t

true || false in React — русскоговорящее сообщество
💾 M.S K.
Народ, помогите уменьшить синтаксис куска кода
if (isDesignSetWineExperience && recipeSlugFromUrl) {
......
   } else if (isDesignSetTasteAdvisor) {
     if (characterIdFromUrl || characterIdFromRedux) {
       getRetailerCharacterInfo(
         characterIdFromUrl || characterIdFromRedux,
         retailerSlugFromUrl || retailerSlugFromRedux,
       ).then(data => {
         if (data !== undefined) {
           setCharacterRedirectUrl(data.redirect_url || '');
         } else {
           history.push(createFrontendRetailerUrl(frontendUrls.urlErrorNotFound));
         }
       });
     } else {
       history.push(createFrontendRetailerUrl(frontendUrls.urlErrorNotFound));
     }
   } else {
     getRetailerCharacterInfo(
       characterIdFromUrl || characterIdFromRedux,
       retailerSlugFromUrl || retailerSlugFromRedux,
     ).then(data => {
       if (data) {
         setCharacterRedirectUrl(data.redirect_url || '');
       }
     });
   }
повторяются characterIdFromUrl || characterIdFromRedux и retailerSlugFromUrl || retailerSlugFromRedux. Поэтому можешь их присвоить переменным.
data !== undefined именно нужно на undefined проверять? если нет то тогда просто проверка if(data), или же тернарный оперэ
источник

SD

Sergey Dubov in React — русскоговорящее сообщество
Тимофей 🛴
Это ему уже писали, у сеттера из useState нет коллбэка как у setState
Зафакапил. Спасибо, что поправил
источник

VV

Vladimir Vladimir in React — русскоговорящее сообщество
Почему этот код не работает в react 17.0.1?

const onSubmit = () => {
 console.log(1);
}


<form onSubmit={onSubmit}>
 <button
type="submit">Submit</button>
</form>
источник

💾K

💾 M.S K. in React — русскоговорящее сообщество
true || false
повторяются characterIdFromUrl || characterIdFromRedux и retailerSlugFromUrl || retailerSlugFromRedux. Поэтому можешь их присвоить переменным.
data !== undefined именно нужно на undefined проверять? если нет то тогда просто проверка if(data), или же тернарный оперэ
тернарки то фигня и эти переменные... главное с елс-ифами разобраться ото шо главное...
источник

t

true || false in React — русскоговорящее сообщество
💾 M.S K.
тернарки то фигня и эти переменные... главное с елс-ифами разобраться ото шо главное...
сделаешь это, и твой код станет чутка короче, потом возможно придут идеи ))
источник

t

true || false in React — русскоговорящее сообщество
или Свич используй тогда
источник

VL

Valerii Leontiev in React — русскоговорящее сообщество
ребят, а как в реакте с тайпсриптом сделать что-то типа вьюшного "one of" в контексте пропсов? вот я знаю что у меня должна прилетать строка, одна из трех вариантов
источник

💾K

💾 M.S K. in React — русскоговорящее сообщество
true || false
или Свич используй тогда
о... точно, надо со свичем поиграть👍
источник

VL

Valerii Leontiev in React — русскоговорящее сообщество
как мне это в интерфейсе описать?
я пишу вот
interface MyProps {
  someprop: ?
}
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Valerii Leontiev
ребят, а как в реакте с тайпсриптом сделать что-то типа вьюшного "one of" в контексте пропсов? вот я знаю что у меня должна прилетать строка, одна из трех вариантов
@ts_ru
Но доку прочитай просто, там такое есть
источник

VL

Valerii Leontiev in React — русскоговорящее сообщество
Тимофей 🛴
@ts_ru
Но доку прочитай просто, там такое есть
ага, что-то беглым взглядом не увидел
источник

💾K

💾 M.S K. in React — русскоговорящее сообщество
Valerii Leontiev
ребят, а как в реакте с тайпсриптом сделать что-то типа вьюшного "one of" в контексте пропсов? вот я знаю что у меня должна прилетать строка, одна из трех вариантов
через или "стр1" | "str2" | "str3"
источник

VL

Valerii Leontiev in React — русскоговорящее сообщество
💾 M.S K.
через или "стр1" | "str2" | "str3"
а, спасибо, проще чем я думал) попробую
источник

t

true || false in React — русскоговорящее сообщество
💾 M.S K.
о... точно, надо со свичем поиграть👍
export function someFun() {
 const v1 = characterIdFromUrl || characterIdFromRedux
 const v2 = retailerSlugFromUrl || retailerSlugFromRedux
 const pushHistory = () => history.push(createFrontendRetailerUrl(frontendUrls.urlErrorNotFound))
 const setChar = () => setCharacterRedirectUrl(data.redirect_url || '')
 if (isDesignSetWineExperience && recipeSlugFromUrl) {
 ......
 } else if (isDesignSetTasteAdvisor) {
   if (v1) {
     getRetailerCharacterInfo(v1, v2).then(data => {
       data ? setChar() : pushHistory()
     })
   } else {
     pushHistory()
   }
 } else {
   getRetailerCharacterInfo(v1, v2).then(data => {
     if (data) {
       setChar()
     }
   });
 }
}
источник

Д

Денис in React — русскоговорящее сообщество
Дмитрий
Народ не подскажите почему setState От useEffect может не работать?
Всё отрабатывает, залогируй Стейт компонента)

А то ты обращаешься к копии которую не обновлял)
источник

t

true || false in React — русскоговорящее сообщество
а дальше переделать под свич, если нужно
источник

😏

😏 in React — русскоговорящее сообщество
Добрый вечер всем.  Юзаю socket.io, на скрине мой useEffect принимает message и добавляет его в массив. Если убрать зависимость messages, то оно попросу не видит данный массив и соответственно добавляться будет только сообщение которое я получил сокетом, а те что были - исчезают.Тоесть всегда будет только 1 сообщение в массиве. Если же зависимость оставить, то useEffect начинает выполняться с каждым сообщением - все больше и больше. Что я делаю не так?)
источник

💾K

💾 M.S K. in React — русскоговорящее сообщество
true || false
export function someFun() {
 const v1 = characterIdFromUrl || characterIdFromRedux
 const v2 = retailerSlugFromUrl || retailerSlugFromRedux
 const pushHistory = () => history.push(createFrontendRetailerUrl(frontendUrls.urlErrorNotFound))
 const setChar = () => setCharacterRedirectUrl(data.redirect_url || '')
 if (isDesignSetWineExperience && recipeSlugFromUrl) {
 ......
 } else if (isDesignSetTasteAdvisor) {
   if (v1) {
     getRetailerCharacterInfo(v1, v2).then(data => {
       data ? setChar() : pushHistory()
     })
   } else {
     pushHistory()
   }
 } else {
   getRetailerCharacterInfo(v1, v2).then(data => {
     if (data) {
       setChar()
     }
   });
 }
}
класс, спасибо!
источник

😏

😏 in React — русскоговорящее сообщество
источник