invariance
спасибо)
invariance
Парни, а по какой причине console.log() из стороннего пакета может не срабатывать?
Gena
Парни, а по какой причине console.log() из стороннего пакета может не срабатывать?
Если только что вставленный, то по причине кеша бандлера, надо перезапустить с флагом: npm start -- --reset-cache (ну или `react-native start --reset-cache`)
invariance
спасибо)
不退転」
Я иногда свои console.log’и в либы сую, если надо их поведение править. Видимо владелец мог оставить
Gena
@steve_kite Меня некоторое время мучает один вопрос ))) Вы говорили, что вместо обычных RN вьюх, используете свои на litho, но при этом оставили возможность внешним компонентам использовать и обычные вью из RN. Т.е. в ReactViewGroup вы можете вставить свою собственную а в свою собственную соотетственно ReactViewGroup, это я правильно понял? Если да, то как вам удается продолжить родной для RN процесс лэйаута в yoga при вставки ReactViewGroup в свою вьюху? Я мучаюсь потому что сам не нашел хорошего способа сделать кастомную нативную вьюху в которую можно вставить реактовскую и продолжить лэйаут... Они просто не дают добавлять детей в yoga, если там есть кастомная measure ф-ция 😕
Vitaliy
Ребята подскажите пожалуйста. Куда редакс-персист сохраняет данные?
в вашу реализацию хранилища. Чаще всего это AsyncStorage, но возможны варианты. Мы заворачивали в realm например. // defaults to localStorage for web and AsyncStorage for react-native https://github.com/rt2zz/redux-persist#basic-usage
Steve
нет особого смысла
Steve
кастомных вьюх почти не бывает
Gena
А, т.е. в момент когда вы начинаете использовать свою, то все её вложенные вьюхи уже тоже только свои...
Gena
Да, это я представляю как сделать, тогда вопрос отпадает ))) Т.е. не отпадает, я конечно буду дальше думать )
Steve
Да, это я представляю как сделать, тогда вопрос отпадает ))) Т.е. не отпадает, я конечно буду дальше думать )
да, вообще лито такие крутые что в него вставлять обычные вьюхи как-то странно. Мы дореализовали все что необходимо руками типа 9patch и градиентов, а больше и не нужно.
Steve
Вот с анимациями не оч легко и пока не понятно
invariance
и непонятно куда ресерчить
Maxim
можно как-то управлять сплешскрином? чтобы он пропал чуть позже? на ios
Anonymous
подскажите пожалуйста мне сказали что при авторизации сохранять токен в сессии не совсем кошерно, подскажите плиз как правильнее
不退転」
можно как-то управлять сплешскрином? чтобы он пропал чуть позже? на ios
setTimeout( () => SplashScreen.hide(), 3000) в componentDidMount? Кончено ущербный способ, но рабочий. Будет интересно послушать нормальный вариант
invariance
Может тут кто знает... Уже битый час ломаю голову, догадок вообще никаких
invariance
Ребят, странная штука. Есть такой return: return RNGeocoder.geocodePosition(position).catch(err => { console.log('test'); if (!this.apiKey) { throw err; } return GoogleApi.geocodePosition(this.apiKey, position, this.language); }); И console.log не выводится вообще ни в какую, но я 100% уверен, что функция отрабатывает, потому что значение возвращается. Втф может быть?
Gena
@invariance Сразу бы код прислали... не отрабатывает ваша функция с вызовом console.log
Gena
Как пруф, попробуйте туда вместо console.log вставить throw new Error('XXX') и посмотрите... готов поспорить не свалится
Gena
А вот зато, если вы RNGeocoder.geocodePosition(position).then(() => console.log('XXX')) напишите - наверняка всё увидите
invariance
Но как... Как это работает? Я уверен что оно возвращает результат именно return GoogleApi.geocodePosition(this.apiKey, position, this.language);
invariance
Или... Нет?
invariance
Черт, тогда ясно, почему и там console.log не срабатывал
invariance
Тогда я чет вообще в недоумении, что вызывает эта функция
Gena
это всё промисы... промисы... 🎶
Anonymous
По авторизации кто подсказать может?
invariance
Я тупой и не понимаю... Вот есть функция: geocodePosition(apiKey, position, language) { if (!apiKey || !position || !position.lat || !position.lng) { return Promise.reject(new Error("invalid apiKey / position")); } console.log(language); return this.geocodeRequest(`${googleUrl}?key=${apiKey}&latlng=${position.lat},${position.lng}&language=${language}`); }, Я ее напрямую вызываю. В итоге return такой, как надо, а console.log(...) отсутствует полностью. Т.е. даже не пустая строка... Видимо проблема в асинхронности... У меня с этим туго пока что
invariance
Ну да... Понял теперь
invariance
Заменил респонс на null, но валидный ответ падать не перестал.
invariance
Невнимательность - порок =\
Gena
подскажите пожалуйста мне сказали что при авторизации сохранять токен в сессии не совсем кошерно, подскажите плиз как правильнее
Знаете почему вам никто не отвечает? У всех первая мысль "а что такое сессия в RN, может это про web"? Вторая мысль "вообще авторизация очень по разному делается, очень долго придется выяснять все особенности, ну его..."
Anonymous
http://qaru.site/questions/229875/save-sensitive-data-in-react-native
Anonymous
нашел это
Anonymous
вывды такие езопасно использовать AsyncStorage для сохранения токенов пользователей, поскольку они сохраняются в безопасном контексте.
Monch
всем приветб что не так делаю?
invariance
всем приветб что не так делаю?
ты пропустил фигурную скобку и обычную
invariance
а, показалось
Roman
всем приветб что не так делаю?
Во первых ты мутируешь стейт :)
Roman
А во вторых видимо не подключил конфиги бабеля
Monch
вроде дело именно в таймереб потому-что когда удаляю его все норм
Steve
Лол я все воюю с Headless JS (нашел у себя пару багов), но сейчас у меня умирает setTimeout если активити было пересоздано!
Steve
было ли у кого-то такое?
Aleksei
емнип у них там своя реализация таймаутов должна быть, так как в JSC из коробки нет, но я давно уже в эту часть не лазил
Steve
да я понимаю
Steve
ковыряю смотрю не понимаю почему все останавливается
Steve
причем валится только в релизной сборке, в дебаге все работает нормально =(
Gena
причем валится только в релизной сборке, в дебаге все работает нормально =(
Странно, что в дебаге работает... Они же реально убивают таймеры на onHostPause: https://github.com/facebook/react-native/blob/0.58-stable/ReactAndroid/src/main/java/com/facebook/react/modules/core/Timing.java#L216
Gena
Ой, ой... у них там ещё какой-то кусок логики с headless связанный есть: https://github.com/facebook/react-native/blob/0.58-stable/ReactAndroid/src/main/java/com/facebook/react/modules/core/Timing.java#L289
Gena
Это я с гитхаба читать не осилю, а на большее времени сейчас нет... ((
Steve
Я понял
Steve
Они при паузе снимают коллбеки
Steve
Это жесть имхо
Steve
При остановке сервиса тоже убивают
Steve
Ну кто так пишет не понимаю((
Gena
Интересно... это значит при headless лучше самому менеджерить лайфсайкл каталиста... Интересно, удастся ли при этом хотябы ReactInstanceManager сохранить и через него это делать? 🤔
Gena
Проблема в том, что ReactInstanceManager расчитан на трегинг только активити... его onHostPause/onHostResume все принимают Activity на вход... И его можно переписать было бы, если бы в него не было напихано ещё кучу всего типа devSupport, hardware back button и прочего...
Gena
Ааа... его нельзя переписать (только если отнаследоваться, но там тогда в приватные поля не залезть), т.к. он захардкожен без интерфейса в св-вах ReactRootView, NativeModuleRegistryBuilder и ещё CoreModulesPackage...
Gena
всё, пойду работать, хватит туда смотреть )
Steve
Вообще react-native-navigation (wix) умеет не паузить
Steve
То есть это возможно
Steve
Там из активити дергаются методы для паузы можно просто не вызывать их
Steve
В общем я делал что - я запускал сервис из onCreate приложения, переместил в onPause активити и теперь все работает
Steve
но это жесть конечно какая-то
Steve
react-native-threads кстати тоже паузится(
Steve
придется форкать что ли
Steve
я тут ночью бенчмаркал v8 и jsc
Steve
v8 уделывает по скорости байндингов раз в 5
Steve
а исполнение внутри раз в 100
Steve
И это примерно похоже, на айфоне все работает быстро, а на андроиде экран может лагать очень и очень долго
Steve
graphql клиент работает в разы медленнее (там оч тяжелый кеш)
Steve
Нет никакой причины так лагать кроме того что JSC просто плохо работает на ведрах
Steve
https://github.com/mentaljs/mentaljs-jsc/tree/master/packages
Сергій
😏
Steve
При желании можете сами попрбовать запустить