Size: a a a

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

2021 March 10

AB

Anatoly Berbeka in React — русскоговорящее сообщество
Veli
импортируете стор и делаете с ним что угодно) store.dispatch/store.getState
Типа когда экспорт делаю из configureStore? У меня почему-то получается как будто 2 разных стора, между собой не связанных, один в приложении, и другой в сервисе.
источник

X

Xxx in React — русскоговорящее сообщество
Anatoly Berbeka
Я пробовал, я не смог в сервис с axios передать стейт. И диспатчить экшены из него тоже, я с этим провозился кучу времени и не получил работающего варианта. Примеры нагуглить не смог, если кто-то может ткнуть в пример - буду крайне признателен
Добро пожаловать в мир redux, где простые вещи становится сделать сложно. А сложные еще сложнее ))
источник

DN

Drew Naumenko in React — русскоговорящее сообщество
Xxx
Уже ответили, так работает useEffect, почитайте внимательнее доки.

Если вы хотите иметь доступ к самому свежему значению переменной, она должна быт в dependencies useEffect.
Иначе там будет значение на момент инициализации компонента
хех понял , но  если я добавляю в зависимости получаеться бесконесный цикл
то-есть какой-то тупик у меня получился

  useEffect(() => {
       const observer = new IntersectionObserver(
           ([entry]) => {
               if (entry.isIntersecting) {
                   console.log(entry)
                   dispatch(fetchData(paginationOptions.usersPerPage, paginationOptions.currentPage));
                   dispatch(setCurrentPage());
                   console.log('It works!',paginationOptions.currentPage )
               }
           },
           {
               root: null,
               rootMargin: "0px",
               threshold: 0.1
           }
       );

        if (ref.current) {
            observer.observe(ref.current);
       }

       return () => { observer.unobserve(ref.current) }

   }, [ paginationOptions.currentPage]);
источник

AB

Anatoly Berbeka in React — русскоговорящее сообщество
Xxx
Добро пожаловать в мир redux, где простые вещи становится сделать сложно. А сложные еще сложнее ))
Ну я типа как бы решил проблему, оно работает, просто мой внутренний перфекционист протестует и говорит, что должен быть более изящный способ)
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Veli
а где хранить?
В каком-то отдельном сервисе, который не выходит за пределы api слоя
В сторе токен-то зачем?
источник

V

Veli in React — русскоговорящее сообщество
Vladimir Klimov
В каком-то отдельном сервисе, который не выходит за пределы api слоя
В сторе токен-то зачем?
если не хранить токен в сторе/стейте, то как определять, авторизован ли пользователь? Допустим, я отправляю запрос, он выдает 401, я удаляю токен. Как сделать перерендер?
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Veli
если не хранить токен в сторе/стейте, то как определять, авторизован ли пользователь? Допустим, я отправляю запрос, он выдает 401, я удаляю токен. Как сделать перерендер?
а как вы определяете, авторизован ли пользователь, при старте приложения, когда стора еще пустая?)
источник

X

Xxx in React — русскоговорящее сообщество
Drew Naumenko
хех понял , но  если я добавляю в зависимости получаеться бесконесный цикл
то-есть какой-то тупик у меня получился

  useEffect(() => {
       const observer = new IntersectionObserver(
           ([entry]) => {
               if (entry.isIntersecting) {
                   console.log(entry)
                   dispatch(fetchData(paginationOptions.usersPerPage, paginationOptions.currentPage));
                   dispatch(setCurrentPage());
                   console.log('It works!',paginationOptions.currentPage )
               }
           },
           {
               root: null,
               rootMargin: "0px",
               threshold: 0.1
           }
       );

        if (ref.current) {
            observer.observe(ref.current);
       }

       return () => { observer.unobserve(ref.current) }

   }, [ paginationOptions.currentPage]);
Проблему с обновлением переменной мы решили )
Дальше вам явно нужно изменить структуру useEffect.
Я не знаю что такое IntersectionObserver. Если это обычный Observable, то там точно не нужно создавать каждый раз новый.
источник

V

Veli in React — русскоговорящее сообщество
Vladimir Klimov
а как вы определяете, авторизован ли пользователь, при старте приложения, когда стора еще пустая?)
у меня лично при инициализации токен берется из стоража и кладется в стор
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Veli
у меня лично при инициализации токен берется из стоража и кладется в стор
Все лучшие практики собрали)
источник

V

Veli in React — русскоговорящее сообщество
Vladimir Klimov
Все лучшие практики собрали)
а как правильно?
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Veli
а как правильно?
Какой срок жизни у вашего токена?
источник

V

Veli in React — русскоговорящее сообщество
Vladimir Klimov
Какой срок жизни у вашего токена?
Эта информация как-то поспособствует ответу на прошлый вопрос? Ну, допустим, час
источник

V

Veli in React — русскоговорящее сообщество
Vladimir Klimov
Все лучшие практики собрали)
ну хорошо, я должен хранить токен в httpOnly куках, чтобы их жсом не вытащили. Как поступить, если мое апи использует и браузер, и мобилка и использовать куки я не хочу?

Или какие еще есть варианты мест, где можно хранить токен?
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Veli
Эта информация как-то поспособствует ответу на прошлый вопрос? Ну, допустим, час
Да нет, просто интересно было

"как правильно" - зависит от конкретной ситуации, но хранение jwt в ls считается не очень хорошей практикой и дырой в безопасности
jwt вообще не предназначен для того, чтобы его где-то хранить
Да и вообще, зайдем с другой стороны: зачем вам jwt? 😁
источник

V

Veli in React — русскоговорящее сообщество
Vladimir Klimov
Да нет, просто интересно было

"как правильно" - зависит от конкретной ситуации, но хранение jwt в ls считается не очень хорошей практикой и дырой в безопасности
jwt вообще не предназначен для того, чтобы его где-то хранить
Да и вообще, зайдем с другой стороны: зачем вам jwt? 😁
для авторизации, для чего же еще) Я понимаю, что дыра, альтернативы-то есть?)
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Veli
ну хорошо, я должен хранить токен в httpOnly куках, чтобы их жсом не вытащили. Как поступить, если мое апи использует и браузер, и мобилка и использовать куки я не хочу?

Или какие еще есть варианты мест, где можно хранить токен?
"использовать куки я не хочу")
Я тоже много чего не хочу))
источник

V

Veli in React — русскоговорящее сообщество
я же сказал, по какой причине
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Veli
для авторизации, для чего же еще) Я понимаю, что дыра, альтернативы-то есть?)
Сессии, например))
источник

V

Veli in React — русскоговорящее сообщество
в мобильных приложениях, кажется, куков нет
источник