Bogdan
в ридаксе можно описать концепцию реагирования, привязав данные к екшену, например, если что тоесть показать это, нету - показать другое (реагируешь на екшен, не зная кто тригернул)
в аполо есть апдейт хук, тригерится не на екшен а на компонент (вьюха), который вызывает хук, (привязка к вьюхе)
Anonymous
Друзья, подскажите, вот есть метод static function который я могу описать в классе, на сколько я правильно понял, этот метод static не поподает в общий прототип и тем самым мы избегаем меньше утечку памяти, так ли это ? вопрос чисто информативный
Bogdan
Serious ديمة
Народ как называется полоска
Serious ديمة
Которая появляется когда курсор в поле ввода вводишь
Serious ديمة
Как тестировщику надо
Serious ديمة
Beam pointer
Serious ديمة
😎
Bogdan
короче, посмотрел кучу либ, со скрол хедером, все лагают, может не все видел, лагает конкретно на моменте, когда высчитываешь позицию скрол контейнера, кто то убирал лаги?
Bogdan
нашел выход, просто не теребить скрол контейнер, тогда лагать не будет ничего, но скрол будет под хедером
Korg
Ребята, сори, если такой вопрос тут был, я честно пытался найти)
может подскажет кто, как такое меню-слайдер сделать?
Vitaliy
Dmitry
Bogdan
плюс если есть рефрешконтрол, хедер абсолютом, контрол будет под ним, балдею
Dmitry
Представьте что вы пальцем водите по экрану и на каждый тач у вас асинхронщина
Bogdan
да даже если переделаю через Animated, RefreshControl - под хедером будет
Dmitry
Можно было бы поиграться со стилями
Dmitry
Я делал фальшблок у которого также менялась высота
Dmitry
Типо когда хэдер виден то под ним находится блок который не виден и сдвигает высоту скролл вью
Bogdan
я в вебе сделал, в рн не могу даже примерно перенести, либ нету, пример не могу даже глянуть
Dmitry
Веб это веб) там по-другому обработка происходит
Bogdan
Dmitry
Можно, но помню у меня были с этим проблемы какие-то, не могу точно сказать
Bogdan
я еще не пойму, анимация как только стартанул, пойдет выполнятся, тоесть если ты немного проскролил, анимация не прекращается, хедер уедет, значит на стоп скрол и анимацию стопить?
Valentyn
llllllllllllll
Чет не пойму, почему <div>{error}</div> имеет heigth 0, когда одновляется стейт через useState ( const [error, setError] = useState(''); ). Из за этого рендерится сообщение об ошибке с неправильной высотой, в то время как если не забирать ошибку из api, а просто прописать руками тупо setError(‘dsfsdfsd sf sdf sdf’ ) - всё работает как надо. Я так понимаю что быстрее срабатывает изменение состояния error, чем обновляются данные в самой переменной error и оно рисует пустоту?
llllllllllllll
<Fade top collapse when={error}>
<div>
{error}
</div>
</Fade>
llllllllllllll
вот собсна для чего все это
llllllllllllll
Разобрался через useEffect
Bogdan
такой вариант был, но тут не покажет хедер, так как нету расчета, когда его показывать, но еще и мигает все
Valentyn
1. Не совсем понимаю, зачем делать top для scrollview в этом случае, ведь обертка для хедера не спозиционирована абсолютно.
2. Если стоит задача просто прятать хедер, когда пользователь скроллит вверх и показывать его, когда пользователь скроллит вниз, то: хедер у вас будет присутствовать в любом случае. Главной задачей здесь является просто передвинуть его по оси y за пределы экрана. Вам не нужно переопределять состояние компонента каждый раз, когда пользователь взаимодействует со scrollable компонентом. Анимация хедера по оси Y автоматически будет обработана Animated событием.
Если же имеется ввиду другое поведение - уточните, пожалуйста. Может, я не понял чего-то.
3. По поводу мигания компонента и отсутствия хедера ввиду отсутствия расчетов - не понимаю.
Alexsandr
Alexsandr
Bogdan
вот так, если не анимировать вью, но это не правильно, потому что при любом скроле вверх, нужно показать хедер, но я же не запускаю анимацию, а подписку на ивент делаю
Bogdan
Bogdan
а вот так, если анимировать еще и скролл блок
Bogdan
Alexsandr
блин это же изи
Alexsandr
header делаешь position absolute
Alexsandr
у scrollView есть contentOffset={{ y: 150 }}
Bogdan
он абсолютом и так, тут contentOffset тоже так
Alexsandr
Alexsandr
и все)
Bogdan
ага, ну вон результат выше
Alexsandr
Alexsandr
contentContainerStyle={{ paddingTop: 150 }}
Bogdan
да не в этом дело, я не управляю анимацией, я не могу проскролив в самый низ, показать снова хедер, что бы его увидеть, нужно скролить в самый верх
Alexsandr
Alexsandr
ты просто не правильно сделал
Alexsandr
вот и весь секрет
Alexsandr
щас snack пришлю
Alexsandr
5 мин
Bogdan
вот так все ясно
Animated.timing(height, {
toValue: 0,
duration: 150,
}).start(),
есть старт, есть финишь, могу сделать интерполяцию по этим значением, случай выше я даже понять не могу
Valentyn
да не в этом дело, я не управляю анимацией, я не могу проскролив в самый низ, показать снова хедер, что бы его увидеть, нужно скролить в самый верх
onScroll возвращает вам в том числе и contentSize
у Animated.Event есть такая штука, как listener (имеется ввиду Animated из коробки react-native).
в этот listener, если не ошибаюсь, передаются все значения, которые передаются в обычный onScroll метод
Зная contentSize и contentOffset по y - вы можете определить - достиг ли пользователь конца списка. Определив это - вы просто делаете для вашего position.setValue(0) - и хедер будет отображен.
По поводу интерполяции - inputRange содержит два значения в вашем случае - стартовая точка (0 - хедер показывается) и конечная точка (50 - хедер прячется).
Переключение между этими двумя точками будет происходить автоматически при использовании Animated.Event. При скролле ваш animated.value (position в примере) будет автоматически переключаться на новое значение, переданное из объекта прокинутого onScroll событием.
В строке, где вы описываете [{ nativeEvent: { contentOffset: { y: position }}}], вы указываете, что значение, хранящееся в event.nativeEvent.contentOffset.y должно быть проставлено в animated.value (position в примере) объект. По сути - это замещает Animated.timing(...).start(). Все реализовано автоматом.
Bogdan
onScroll возвращает вам в том числе и contentSize
у Animated.Event есть такая штука, как listener (имеется ввиду Animated из коробки react-native).
в этот listener, если не ошибаюсь, передаются все значения, которые передаются в обычный onScroll метод
Зная contentSize и contentOffset по y - вы можете определить - достиг ли пользователь конца списка. Определив это - вы просто делаете для вашего position.setValue(0) - и хедер будет отображен.
По поводу интерполяции - inputRange содержит два значения в вашем случае - стартовая точка (0 - хедер показывается) и конечная точка (50 - хедер прячется).
Переключение между этими двумя точками будет происходить автоматически при использовании Animated.Event. При скролле ваш animated.value (position в примере) будет автоматически переключаться на новое значение, переданное из объекта прокинутого onScroll событием.
В строке, где вы описываете [{ nativeEvent: { contentOffset: { y: position }}}], вы указываете, что значение, хранящееся в event.nativeEvent.contentOffset.y должно быть проставлено в animated.value (position в примере) объект. По сути - это замещает Animated.timing(...).start(). Все реализовано автоматом.
https://q63fg.csb.app/
вот что нужно, но в рн, может просто никто не понял, что я хотел
Bogdan
Nikita
Всем привет.
Подскажите более менее литературу на русском, по созданию Web приложений на javascript, react native или react js
Konstantin
Ребята привет, у меня есть проблема, буду рад вашей помощи. На iOS есть какая-то трабла с интернетом, когда при выходе из background(а) долго не соединяется, иногда секунд 5-10, картинки не прогружаются. Потом соединение восстанавливается. Интернет при этом хороший. Как можно промониторить и решить, на что обратить внимание? Спасибо :)
Jasur
Всем привет, у кого есть пример Stomp+SockJs внутри RN проекта ?
Kirill
Nikita
Alex
Bogdan
Alex
Bogdan
а, это видос не тот, я вчера у него смотрел просто, превьюха похожа
Bogdan
у него скрол под хедером, это ведь не нормально, в вк например, скрол ниже хедера, а не под и смещается вверх
Андрей
Чем можно заменить редакс?
Андрей
Есть какая-то альтернатива?
Bogdan
PAPAPEPAGEMABODY
кто использует react-native-firebase v6
Alexsandr
Alexsandr