Size: a a a

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

2021 March 23

А

Александр in React — русскоговорящее сообщество
~$solo
Вы как то по другому диспачите экшены
А как надо?
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
Александр
Слабо представляю, что значит "вызывать компонент", компонент либо рендерится, либо нет, если его надо иногда рендерить, а иногда нет, то есть условный рендеринг, но то, что проблема в onClick - это да. При вызове Redir по сути ничего не происходит.
вот вынес функкцию выше

     const Redir = (e) => {
           if (email.length > 0 &&
               password.length > 3) {

               e.preventDefault() // отключаем перезагрузку

               // вызываем асинхронный ACTION
               dispatch(login(email, password))

               

           } else return
       }


   return (

           <Button variant="info" type="submit" onClick={Redir}>
               Вход
           </Button>
   )
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
теперь вопрос, как вызвать редирект в функции Redir после завершения dispatch(login(email, password))
источник

IL

Igor Lobanov in React — русскоговорящее сообщество
Андрей Дрозд
теперь вопрос, как вызвать редирект в функции Redir после завершения dispatch(login(email, password))
thunk есть?
источник

АД

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

АД

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

IL

Igor Lobanov in React — русскоговорящее сообщество
сделать чтобы login возвращал промис (если уже не возвращает)
источник

IL

Igor Lobanov in React — русскоговорящее сообщество
дальше dispatch(login(...)).then(() => history.push())
источник

IL

Igor Lobanov in React — русскоговорящее сообщество
или await dispatch
источник

А

Александр in React — русскоговорящее сообщество
Igor Lobanov
дальше dispatch(login(...)).then(() => history.push())
Не хорошо так flux нарушать. )
источник

IL

Igor Lobanov in React — русскоговорящее сообщество
Александр
Не хорошо так flux нарушать. )
что ты имеешь в виду?
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
Igor Lobanov
сделать чтобы login возвращал промис (если уже не возвращает)
получается все это првертить в прописы? это сам логин
http://joxi.ru/Grq8Xd5HGDExlA
источник

IL

Igor Lobanov in React — русскоговорящее сообщество
уже всё ок, там async
источник

А

Александр in React — русскоговорящее сообщество
Igor Lobanov
что ты имеешь в виду?
То, что данные вначале должны обновится в стейте, а только потом передаться из него в компонент, а в случае с подпиской на промис получается "параллельный" путь по которому компонет получает данные.
источник

IL

Igor Lobanov in React — русскоговорящее сообщество
Александр
То, что данные вначале должны обновится в стейте, а только потом передаться из него в компонент, а в случае с подпиской на промис получается "параллельный" путь по которому компонет получает данные.
а что предлагаешь?
источник

А

Александр in React — русскоговорящее сообщество
Igor Lobanov
а что предлагаешь?
Завести селектор isAuthSelector, заюзать его на страничке и внутри него определять auth юзер или не auth
источник

IL

Igor Lobanov in React — русскоговорящее сообщество
тоже можно. через useEffect, правильно я понял направление мысли?
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
так сейчас есть кстати, после дисптатча в state isAuth = true
источник

IL

Igor Lobanov in React — русскоговорящее сообщество
Александр
Не хорошо так flux нарушать. )
есть здравое зерно, про промисы написал потому что кейс специфический (редирект)
источник

А

Александр in React — русскоговорящее сообщество
Igor Lobanov
тоже можно. через useEffect, правильно я понял направление мысли?
...
const isAuth = useSelector(isAuthSelector);
...
return (
   ...
   {isAuth ? <Redirect to='/somePage' /> : null}
   ...
);
источник