Victor K
Привет всем, import * as MODULE from ... в джесте работает? Почему-то undefined, хотя обычные и дефолотные импорты нормально работают.
Vall
При прокрутке вверх?
при переходе между страницами когда пользователь перейдет с главной на страницу продукта и нажмет goBack
Vall
зачем тебе сохранять позицию скролла? у тебя есть позиции элемента и текущее значение скролла. путаешься реализовать https://github.com/clauderic/virtualized-list ?
ну вот мне надо сохранять текущую позицию скролла когда юзер вернется на главную страницу обратно
Evgeny
ну вот мне надо сохранять текущую позицию скролла когда юзер вернется на главную страницу обратно
значение подгруженной страницы у тебя есть, элемент по которому кликнули тоже. в чем проблема это сохранить?
Vall
в стейт ложи общий,если используешь редакс
Ну вот так и думал сделать Спасибо
Sun
Здрасте. Подскажите, а если делать переход по Link в компоненте, которая отрисовывается в родительской компоненте, а не автономно в App, то Link не будет работать? У меня меняется url, но не происходит перерендинга и соответственно я не добиваюсь нужного эффекта перехода на страницу с другим id. Перепрбывав некоторое кол-во вариантов, я пришел к выводу, что все так, как описал.
T.A
ребят, кажется eslint начинает не с того места да? хоть и указал root: true. в паренте есть ещё один eslint с игнором папки client
Юрий
ребят, а какие варианты авторизации могут быть с токеном? если нужны приватные и публичные роуты? Как не крути будет чекаться LocalStorage, если есть токены, давать доступ к роутам, а только потом если будет запрос и токены не валидны, выкинет с на страницу LOGIN, но я так понимаю лучше ориентироваться на флаг в редаксе?
Юрий
что за флаг, и почему лучше
создать флаг типо isAuth, по которому рендерить роуты приватные или нет. я не знаю как правильно, у меня написан хок который ориентируется на localStorage
Юрий
я просто не пойму как с флагом можно сообразить это и нужно ли, ведь при обновлении страницы, флаг будет сначала делаться false, а после его нужно будет менять
VACincoming
ну у меня типо вот такой компонент обёртка, который чекает локалстору, и в зависимости от инфы, пускает или нет
Юрий
у меня такое, а isAuth функция которая проверяет LocalStorage
VACincoming
у меня такое, а isAuth функция которая проверяет LocalStorage
ну считай тоже самое, только я эту логику в отдельный компонент вынес, ибо так писать на каждый роут, сильно страшно
Юрий
ну считай тоже самое, только я эту логику в отдельный компонент вынес, ибо так писать на каждый роут, сильно страшно
просто мне тут сказали, что ориентироваться на данные из локалсторж не правильно, поэтому спросил)
Иван
Всем привет, есть ситуация. Я в new RegExp как патерн передаю стрингу ( const regExp: RegExp = new RegExp(searchText, "mig"); ). Получаю ошибку: "invalid regular expression / / at end of pattern". Находил решение что нужно добавить "/ /". Но не понимаю как именно. Так как все решения и примеры выглядят как RegExp("\\\\", "g"). Пробовал вот так еще, не помогло: "const regExp: RegExp = new RegExp("//" + searchText, "mig");
VACincoming
просто мне тут сказали, что ориентироваться на данные из локалсторж не правильно, поэтому спросил)
ну не правильно наверное хранить данные об авторизации в локалсторе, нужно в куки
Юрий
а нормально ли делать редиректы и удалять данные из локалсторадж прямо в экшене?
Иван
@OlegBrony Да я такое читал, а как именно ?
Oleg
@OlegBrony Да я такое читал, а как именно ?
1) не пингуй, а реплай. 2) ссылку дал.
Юрий
Нет
во, отлично! а где это нужно делать?
Oleg
Нет
а почему нет?
Юрий
просто логично думал выглядит, ответ пришел, сага вызвала экш, там сделался редирект
Тимофей 🛴
а почему нет?
Потому что это сайд эффект
Юрий
Oleg
Потому что это сайд эффект
и что? экшн крейтор не обязан быть чистым.
Тимофей 🛴
и что? экшн крейтор не обязан быть чистым.
Это вообще не action а actionCreator и он должен быть чистым
Oleg
не, понятно, что в мидлваре элегантней. но в целом, почему бы и в экшене не сделать?
Andrey
Можно что-то сделать с хуком useEffect так, чтобы при первом рендере он никогда не срабатывал?
Юрий
не, понятно, что в мидлваре элегантней. но в целом, почему бы и в экшене не сделать?
с одной стороны и в саге не совсем красиво делать редирект
Ura
Не понял?
это костыль, и скорее всего ты можешь написать без этого
Oleg
с одной стороны и в саге не совсем красиво делать редирект
там редиректа там не должно быть, имхо. у тебя должно быть в стейте что-то, на что ты отреагируешь в компоненте и редиректнишь.
Тимофей 🛴
не, понятно, что в мидлваре элегантней. но в целом, почему бы и в экшене не сделать?
Потому что это просто создание экшена и все. Зачем в нем сайд эффекты? Они еще и срабатывать будут без dispatch и до него
Юрий
там редиректа там не должно быть, имхо. у тебя должно быть в стейте что-то, на что ты отреагируешь в компоненте и редиректнишь.
окей, я залогинелся, флаг в стейте поменялся, компонент сделал редирект. А потом ты обновляешь страницу, у тебя флаг false, разве нет?
Andrey
а кейс можно? зачем это нужно?
Дергается экшн, на который подписана сага, которая идет на сервер При первом рендере нет необходимости делать запрос на сервер
Тимофей 🛴
Oleg
Я где то это написал?
я не так понял?
Тимофей 🛴
я не так понял?
Без dispatch и до dispatch
Юрий
редирект с перезагрузкой?
ну смотри, другой кейс, ты нажимаешь logout: 1) тебе нужно очистить локалсторадж 2) сделать редирект где это все будет?
Oleg
ну смотри, другой кейс, ты нажимаешь logout: 1) тебе нужно очистить локалсторадж 2) сделать редирект где это все будет?
это всё можно сделать без перезагрузки -> без очистки стейта. я бы просто очистил локал стор.
Юрий
это всё можно сделать без перезагрузки -> без очистки стейта. я бы просто очистил локал стор.
очистил, ты будешь оставаться на той же странице без редиректа
Юрий
а при загрузке login page, у тебя токена нету, к приватным роутингам доступа уже нету, ты сидишь только там
Stanislav
Ребят подскажите, как можно в setState в качестве пропа указать значение из атрибутов функции? Пример: changeValue(prop, value) { this.setState({ prop: value }); }
Юрий
ну так сделай редирект. history.push, не?
вот именно, но это все находиться в экшн крейторе
Stanislav
setState({ [key]: value, })
благодарю)
Oleg
https://reacttraining.com/react-router/web/api/Hooks/usehistory
Юрий
https://reacttraining.com/react-router/web/api/Hooks/usehistory
ага, я знаю про хук usehistory, но вопрос, где можно сделать очистку и редирект кроме экшена
🦜
у тебя нет проблемы, то что ридирект сработает раньше, чем вернется объект из функции?
🦜
нету
т.е диспатч экшена происходит, когда ты на другой странице?
Юрий
ну а как еще вызвать в любом месте свой logout и выкинуть на логин?
🦜
да
странная логика
Юрий
странная логика
я не спорю, но других вариантов - не нашел
Denis 🇺🇦
Юзать uuid или другие рандомные генераторы чисел для key это бесполезно?
Ura
Юзать uuid или другие рандомные генераторы чисел для key это бесполезно?
если прям печет то timstamp используй, а вообще не надо почти никогда
Denis 🇺🇦
Ведь при каждом ререндере будет новое значение у key и реакт не будет реюзать прошлый инстанс дом элемента
Denis 🇺🇦
если прям печет то timstamp используй, а вообще не надо почти никогда
Я именно интересуюсь в чем вообще смысл этого "уникального" key, который меняется каждый рендер. Получается нет смысла или я что-то не понимаю