Size: a a a

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

2020 August 05

1

1N54N3 in React: русскоязычное сообщество
А зачем оборачивать в юзеколлбек если обработчики срабатывают только когда происходит изменения значения? или юзеколлбек позволяет хранить в "памяти" предыдущие результаты запросов?
источник

1

1N54N3 in React: русскоязычное сообщество
1N54N3
А зачем оборачивать в юзеколлбек если обработчики срабатывают только когда происходит изменения значения? или юзеколлбек позволяет хранить в "памяти" предыдущие результаты запросов?
Без шуток, после прочтения доки по юзекаллбек и лог. размышления зачем он тут нужен  - не понял
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
1N54N3
А зачем оборачивать в юзеколлбек если обработчики срабатывают только когда происходит изменения значения? или юзеколлбек позволяет хранить в "памяти" предыдущие результаты запросов?
Просто хорошая практика.
источник

d

dalay in React: русскоязычное сообщество
Привет! Может здесь помогут )

Проблема в том что при перезагрузке страницы меня редиректит на главную.
Консоль выводится 2 раза. Как правильнее обработать этот момент?

const MainContent = () => {
   const user = useSelector(state => state.user);
   
   console.log(user)

   return (
       <div className="App-content">
           <Switch>
               <Route exact path={"/"} component={Home}/>
               <Route path="/signup" render={() => (
                   user.is_logged ? (<Redirect to="/"/>) : (<Signup/>)
               )}/>
               <Route path="/login" render={() => (
                   user.is_logged ? (<Redirect to="/"/>) : (<Login/>)
               )}/>
               <Route path="/profile" render={() => {
                   if (user.is_logged) {
                       return <Profile/>
                   } else {
                       return <Redirect to="/login" />
                   }
               }}/>
               <Route path="/logout" render={() => (
                   (<Redirect to="/"/>)
               )}/>
           </Switch>
       </div>
   );
};

Толком еще не разобрался с компонентами
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
С какой страницы редиректит?
источник

d

dalay in React: русскоязычное сообщество
<Profile/>
источник

d

dalay in React: русскоязычное сообщество
Когда на нем нахожусь
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
А user.is_logged в этот момент какой?
источник

d

dalay in React: русскоязычное сообщество
Там фолс сначала
источник

d

dalay in React: русскоязычное сообщество
Вот это поведение никак не могу понять
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Ну так ровно это ведь и написано.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
А.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Или то, что редиректит на главную, а должно на логин?
источник

d

dalay in React: русскоязычное сообщество
Написано понятно. Конечно, так и должно быть. Но я не могу понять почему 2 раза )
источник

d

dalay in React: русскоязычное сообщество
Нет. Должно быть там где было
источник

d

dalay in React: русскоязычное сообщество
То есть на профиле.
источник

d

dalay in React: русскоязычное сообщество
Консоль выстреливает 2 раза. ) Рендер так работает. Это понимаю. Но не детально
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Ну так console.log вставлен в тело компонента. А тело компонента вызывается на любой чих.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Это раньше был render() {} метод.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Вот есть библиотека, которая показывает причины рендера: https://github.com/welldone-software/why-did-you-render
источник