Size: a a a

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

2021 May 22

VC

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

C

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

NN

Nurbek Nurjanov in React: русскоязычное сообщество
Объясните, может кто знает

Такой код

   const [count, setCount] = React.useState(0);
   useEffect(()=>{
       if(count===1){
           history.push('/effect')
       }
   }, [count, history]);
   const click = async ()=>{
       setCount(1);
       history.push('/click')
   }

Вот тут useEffect не успевает работать, так как происходит редирект на страницу /click
Это понятно

Вот тут непонятно
Если сделать так

   const [count, setCount] = React.useState(0);
   useEffect(()=>{
       if(count===1){
           history.push('/effect')
       }
   }, [count, history]);
   const click = async ()=>{
       await new Promise(resolve=>{
           setCount(1)
           resolve(true)
       });
       history.push('/click')
   }

Команду setCount если обернуть в промис
Тогда уже useEffect успевает сработать
и произойдет два роута
сперва в /click
а потом после useEffect сделает редирект в /effect

Что такого делает промис что setCount успевает дернуть useEffect
И почему без промиса она не успевает также дернуть useEffect
источник

🅝🅖

🅝🅘🅚🅘🅣🅐 🅖🅞🅡🅒🅗🅐🅚🅞🅥... in React: русскоязычное сообщество
Всем привет, подскажите как кто слушает события роутера в реакт, ну вот в некст есть routeChangeStart, а react-router нет такого?
источник

VL

Vitaly Logvinenko in React: русскоязычное сообщество
Не уверен, но могу предположить что в первом случае в выше стоящем компоненте листенер на текущий роут, и компонент анмаутится в котором сделан setCount, поэтому и useEffect не вызывается. Во втором случае клмпонент успевает ререндернутся так как setCount внутри асинх функции. А так протестировать бы с большим кодом, кейс интересный для разбора) у меня за весь опыт проблем с useEffect не возникало, возможно у вас архитектурная ошибка
источник

C

Contentit in React: русскоязычное сообщество
а иза чего могут все кнопки работать даже те которые должны выполнять свою функцию выполняют 1 аддлистенер
источник

C

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

J

Jack in React: русскоязычное сообщество
Ужасный гавнокод, не делай так(весь код)
источник

C

Contentit in React: русскоязычное сообщество
😂 хорошо постараюсь, я обучаюсь так сказать реакту
источник

J

Jack in React: русскоязычное сообщество
Очень много замечаний например : 1) удаляй подписку в return useEffect, 2)не суй в onClick таким образом колбек, сделай хендлер и в useCallback
источник

J

Jack in React: русскоязычное сообщество
Дальше лень писать
источник

A

Anton in React: русскоязычное сообщество
2 – в данном случае в этой "оптимизации" нет смысла
источник

P

Pavel in React: русскоязычное сообщество
Почитай/посмотри что такое event loop. Все встанет на свои места.
источник

P

Pavel in React: русскоязычное сообщество
history.listen(listener: Listener)

https://github.com/ReactTraining/history/blob/master/docs/api-reference.md#historylistenlistener-listener

Только не забудь отписаться на анмаунте
источник
2021 May 23

D

Demian in React: русскоязычное сообщество
Вечер добрый, подскажите, как фетч  пост запрос в реакте написать и где
источник

k

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

D

Demian in React: русскоязычное сообщество
Знаю, смотрел) реакт разбираю второй день, почему-то на простейшие вопросы ответов что-то не нахожу. Get-запрос, который расписан - понятен. Но вот по поводу поста, алгоритм, чёт не оч. Как я понял, из управляемой формы, данные передаются в стейт. Каким образом их в фетч запихнуть? Обязательно ли делать запрос в DidMount?
источник

D

Demian in React: русскоязычное сообщество
Да и как тут, вообще, области видимости работают?)
источник

D

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

k

krovnypolet in React: русскоязычное сообщество
смотри просто передай их туда и всё
источник