Vitaliy
кто нибудь успешно настраивал фб диплинки на реакт нативе? оч нужна консультация, не получается пробросить параметры🙏
это которые deferred? а что именно не получается? они, насколько я помню по способам атрибуции трафика мобилок, с помощью матчинга работают, т.е. как минимум без перехода по самой ссылке на этом же устройстве ничего точно не прилетит.
AXZ
это которые deferred? а что именно не получается? они, насколько я помню по способам атрибуции трафика мобилок, с помощью матчинга работают, т.е. как минимум без перехода по самой ссылке на этом же устройстве ничего точно не прилетит.
да, deferred. Задача - параметры из deferred ссылки в настройках рекламного объявления пробросить в само приложение после клика и установки юзером. Пробовали нативно и через Branch.
Serhii
да, deferred. Задача - параметры из deferred ссылки в настройках рекламного объявления пробросить в само приложение после клика и установки юзером. Пробовали нативно и через Branch.
нужно чтобы в ссылке на гугл плей был прописан url который перехватывается приложением вот так https://play.google.com/store/apps/details?id=com.whatsapp&url=protocol%3A%2F%2Fdomain%2Fdata
Андрей
Что делать если данные со стора получаю позже чем происходит рендер
Андрей
Если данные с пропсов пустые то крутить лоадер а иначе показать шаблон?
Akylbek
Когда запрос идет показывается лоадер, когда запрос прошел показываешь контент
Fabiano
Good morning has anyone already notified by location? Hi do you have any idea how to do it?
Maksym
Господа, всех приветствую, два дня назад начал работать с React Native Прохожу курс на курсере, реализовал список элем используя FlatList, с этим вроде разобрался, начал реализацию меню, доустановил либу react-navigation@2.0.1, юзаю ф-цию createStackNavigator для создания меню все сбилдилось, но не отображаеться моя Menu компонента const MenuNavigator = createStackNavigator({ Menu: {screen: Menu}, DishDetail: {screen: DishDetail} }, { initialRouteName: 'Menu', navigationOptions: { headerStyle: { backgroundColor: '#512DA8' }, headerTintColor: '#fff', headerTitleStyle: { color: '#fff' } } }); export class Menu extends React.Component { constructor(props) { super(props); this.state = { dishes: DISHES } } static navigationOptions = { title: 'Menu' }; render() { const {navigate} = this.props.navigation; const renderMenuItem = ({item, index}) => { return ( <ListItem key={index} title={item.name} subtitle={item.description} hideChevron={true} leftAvatar={{ source: require('./images/uthappizza.png') }} onPress={() => navigate('DishDetail', {dishId: item.id})} /> ) }; return ( <FlatList data={this.props.dishes} renderItem={renderMenuItem} keyExtractor={item => item.id.toString()} /> ) } }
Maksym
dishes - это массив объектов
Тот самый Тимофей
dishes - это массив объектов
Для начала заменить <FlatList> на <Text>Text Here</Text> и посмотреть, отобразится ли.
Maksym
по этому в чат и написал, мб я забыл указать какой-то параметр
Тот самый Тимофей
С виду правильно вроде. Логать data надо и поменять renderItem тоже на тестовый тег.
Vladyslav 🇺🇦
Спасибо👍
Artem
!report. Трасса чатом ниже
Timur 👨‍💻
Всем привет, юзаю react navigation 5, подскажите плиз как сделать так, чтобы каждый раз при фокусе на экран (через табы) происходил инит функции (но с проверкой, что если юзер уже был на этом экране, то вызывать функцию повторно не нужно, пытался сделать const [isPageFocused, setIsPageFocused] = useState(false) useEffect(() => { const unsubscribe = navigation.addListener("focus", () => { setIsSignedIn(state.token != null) if (!isPageFocused) { setIsPageFocused(true) getTransactions() } }) return unsubscribe }, [navigation]) но каждый раз isPageFocused = false
Михаил
а где стоит хранить токен? В AsyncStorage?
Timur 👨‍💻
E.
Подскажите если берешь проект себе качаешь и он не запускаться, через npx react-native run-android надо сделать что то с yarn? я просто этот момент не понял
Михаил
а что выбирать в Keychain.ACCESSIBLE?Не понял про эти разные варианты безопасности
Михаил
ничего из этого: [{ accessControl, accessible, accessGroup, service, securityLevel }]) не указываешь, когда делаешь setGenericPassword?
Михаил
спасибо
Эдуард
Мне надо сделать хранилище книг. Я прошу у него обложку книги . Неизвестно есть она на устройстве или нет. Хранилище мне выдаёт мне промис в котором или "ищет путь до кеша" или "скачивает и возвращает ссылку" Верно?
Mikhail
Да
Mikhail
Да
sh’
Друзья как это подправить ? На ios все отлично работает На андроиде подвисает и выдаёт ошибку
sh’
N
Подскажите статью или либу для Bottom sheet чтоб можно было свайпом открывать снизу вверх и закрывать
Anonymous
Это предупреждение
sh’
Это предупреждение
Но у меня на ios скроллинг норм работает А на андроиде подглючивает
sh’
Не скролит
Эдуард
Я что-то запутался... Я запрашиваю обложку. Мне приходит обложка и я обновляю стейт. И снова запрашиваю обложку что-ли? (Метод запроса обложки вызывается трижды)
Эдуард
Aleksandr
ты не там его вызываешь
Aleksandr
в хук useEffect засунь и почитай про зависимости, тебе надо единожды при маунте - значит второй аргумент с зависимостями пустой будет
Aleksandr
и в нем свой код запусти
Aleksandr
useEffect(() => { BooksStorage.getBookCover(){} }, [])
Эдуард
А есть вообще смысл писать функциональный компонент с хуками? Или лучше сделать обычный?
Daniil
Если так писать - нет смысла
Aleksandr
ну вообще можно и свои хуки писать и выносить в них логику как в сервисы
Илья
Вопрос по выше обсуждаемой теме. Если миксовать?
Илья
Большие компоненты сложные делать классовыми, а какие-то маленькие функциональные на хуках
Илья
Это будет считаться нормальным подходом? Или лучше все писать однотипно? Все классами или все функциями?
Илья
Подскажите, что не так? Почему AsyncStorage не хранит данные?
Илья
потому что deprecated, бери RNCAsyncStorage
https://www.npmjs.com/package/@react-native-community/async-storage Вот этот?
Филипп
Всем привет, ребят подскажите как с этим бороться, в режиме разработки к примеру сраница авторизации сплющевается, после билда все нормально. А вот чат к примеру тоже сплющевается, а после билда его перекрывает клавиатура. Вообще не понятно как keyboard view работает. Behavior стоит в значении padding.
Филипп
Филипп
Филипп
Илья
да
@ponomarevv а подскажи еще такой момент, что-то не могу сообразить как при setItem просто добавлять еще одну запись, а не перезаписывать имеющияся данные. А то у меня получается при каждой отправке события AsyncStorage.setItem перезаписывается текущий Storage
Филипп
оффсет выставляете?
а что за оффсет ? Ничего такого не ставил
Alexandr
KeyboardVerticalOffset вроде называется параметр
Филипп
Dmitry
Добрый день, занимаюсь установкой Android Studio, застрял на пункте, где нужно прописать bin в переменную path (я пока еще на винде). В документации (https://reactnative.dev/docs/environment-setup) сказано, что это C:\Android\tools\bin\platform-tools дефолтное значение, куда скачивается SDK-ашка, хотя проискав все файлы в диске, я ничего похожего не нашел. find /c -name 'Android\tools\bin' Может кто-нибудь дать подсказку, может, я что-то делаю не так?
Dmitry
То есть, добрая ночь)
Alexandr
ничего не изменилось
а что вы написали, что ничего не изменилось?
Филипп
добавил это offset, но не было никаких изменений. Сейчас пробую пакет KeyboardAwareScrollView
N
Подскажите плиз, всатвил react-native-maps, все ок, но когда выплывает модалка по верх карты то по ней нельзя клацать и свайпать (в это время свайпается карта насквозь модалку)
Anonymous
Контейнер ScrollView?
Филипп
Контейнер ScrollView?
Да, там где чат
Vitaliy
@ponomarevv а подскажи еще такой момент, что-то не могу сообразить как при setItem просто добавлять еще одну запись, а не перезаписывать имеющияся данные. А то у меня получается при каждой отправке события AsyncStorage.setItem перезаписывается текущий Storage
давай по шагам: в доке https://reactnative.dev/docs/asyncstorage.html#setitem написано "Sets the value for a key" ни про какие "добавления записей" там не говорится. просто устанавливает значение для ключа (любое которое укажешь). что в итоге хочешь получить? несколько значений на этом ключе? рекомендую очень внимательно к этому вопросу относиться при проектировании, на андроиде у asyncstorage (там sqlite под капотом) ограничение 6 мб на хранилище. но если это ограничение ещё можно просто побороть настройками модуля, то ограничение на длину записи (одной строки) так просто не поменяешь @gblack9 кстати, судя по доке там 1 000 000 000 знаков по умолчанию https://www.sqlite.org/limits.html если конечно в нативном модуле не поменяли настройки
Владимир
Ребята кто спец. по английскому правильно ли я написал: Do you need a detailed report?(Вам нужен подробный отчёт?)
Artem
Реакт ведь можно юзать не под TS? а то у меня проекты создаются с App.TSX, а руками менять каждый раз конфиги и файл не удобно
Anonymous
Да, там где чат
Попробуйте высоту контейнера через minHeight. Мне это помогло. Даже не использовал keyboardAvoidingView
Gena
давай по шагам: в доке https://reactnative.dev/docs/asyncstorage.html#setitem написано "Sets the value for a key" ни про какие "добавления записей" там не говорится. просто устанавливает значение для ключа (любое которое укажешь). что в итоге хочешь получить? несколько значений на этом ключе? рекомендую очень внимательно к этому вопросу относиться при проектировании, на андроиде у asyncstorage (там sqlite под капотом) ограничение 6 мб на хранилище. но если это ограничение ещё можно просто побороть настройками модуля, то ограничение на длину записи (одной строки) так просто не поменяешь @gblack9 кстати, судя по доке там 1 000 000 000 знаков по умолчанию https://www.sqlite.org/limits.html если конечно в нативном модуле не поменяли настройки
Вот именне "если при компиляции не поменяли", и там в другом проблема, не в строке, а в размере буфера курсора. Так вот, в штатной поставке и sqlite и биндинг в jni идут системные (наверное тоже можно свой вставить, но тут уж реально проще прямо в fs писать), а системные, это значит что от вендора и версии андроид зависят...
Gena
Реакт ведь можно юзать не под TS? а то у меня проекты создаются с App.TSX, а руками менять каждый раз конфиги и файл не удобно
В RN шаблон по умолчанию использует flow, а не ts. Поэтому не "у вас", а именно вы так и создаете проекты. Впрочем, типизация - очень полезный инструмент...