Ruslan
Правки в xcode делал
Nikita
там все по инструкции надо сделать
Ruslan
Не помогло
Eugene
Попробуй еще раз запуститьь:D
Eugene
Ruslan
Nikita
тебе нужно установить их sdk, потому что она есть в проекте, скорее всего
Nikita
раз такая ошибка
Nikita
или стоп
Nikita
ты с нуля проект создал ?
Eugene
Чот ты странное нагуглил :D
Nikita
Nikita
Ruslan
Пойду гуглить дальше)
Eugene
Ааа, хз.
В xcode legacy выставил?
Ruslan
Не, такого не ставил
Eugene
Eugene
file > project settings
Ruslan
Nikita
Eugene
Build System > Legacy Build System
Cenator 🐈
Показывай
Cenator 🐈
Ты что-то асинхронно загружаешь?
Gena
Ну как бы легко - заводите в state переменную, которая инициализируется в false, а потом, когда всё загрузилось в true выставляется. И начинаете загрузку экрана в componentDidMount. А в render в зависимости от значения этой переменной показываете спиннер или саму начинку экрана.
Eugene
а подгружать эти 1000 итемов по чуть-чуть нельзя?
Gena
Да, но FlatList так и работает сам по себе
Gena
Там есть "ручки" даже, где это можно подрегулировать
Gena
Профайлер!!!
Gena
Хоть console.log(Date.now()) вставьте в разных местах... у вас что-то не то, так не должно быть )
Gena
FlatList изначально не должен рендерить 1000... он должен рендерить https://facebook.github.io/react-native/docs/flatlist#initialnumtorender
Gena
Ох... можете сделать на github минимальный сэмпл с таким поведением, чтоб можно было здесь показать (я бы покопался в коде) и если что к issue приложить?
Gena
Т.е. там не должно быть ничего секретного и чем меньше кода всё ещё воспроизводящего проблему, тем лучше
Gena
Ага )
Gena
Это гугл-java
Gena
Написал "сэмпл" и подумал, что может быть не понятно... имеется ввиду минимальное запускаемое приложение... которое можно слклонировать, сделать npm install, react-native start и посмотреть
Gena
Я не дописал... да, всё верно... у меня был такой код... сейчас пример пришю
Ruslan
Странно
Ruslan
После обновления реакт натива всегда так?
Gena
После обновления реакт натива всегда так?
По разному... я когда-то "наелся" с автоматикой и с тех пор вручную обновляюсь... смотрю вот здесь, что поменялось и сам правлю файлы: https://github.com/ncuillery/rn-diff
Ruslan
А еще такой вопрос, в репозиторий, заливать pods установленные, или их надо в игнор кидать?
Gena
@in4core_studios_llc Вот так я в одном из проектов делал экран... эта штука сперва рендерит декорации (заголовок и табы) чтоб не мигали... и только потом основной контент, который ему засунунули в children. Я немного урезал пример и выкинул стили и часть не относящуюся к делу, и ещё он на typescript и mobx, но сути это не меняет... с таким же успехом можно toolBarHeight в state засунуть и setState вызывать вместо прямого присваивания.
https://gist.github.com/vovkasm/895a9122e04a23772fcc87a3fca9311a
Ruslan
Ruslan
Спасибо!
Eugene
кстати когда создаешь проект - там в gitignore есть ссылка которая описывает плюсы обоих подходов)
Я игнорю их 🤔
Eugene
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
Eugene
https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
Gena
Полагаю, что это всё из вот этой серии https://reactjs.org/docs/render-props.html (ну или очень похоже)
Maxim
<Component {...props}/>
Gena
Только не как array, смотрите, это же просто "сахар", вот как это поэтапно разворачивается (и для ES5 именно в это babel транслирует, с некоторыми доп проверками, правда):
1. <Component {...props} />
Gena
2. React.createElement(Component, {...props}) (разворачиваем jsx)
Gena
3. React.createElement(Component, Object.assign({}, props)) (разворачиваем ...)
Gena
Если Object.assign не реализован, то туда вызов полифилла вставляется, который как-то так работает (это упрощенный вариант, он не совсем верный, но идею должен передать):
function assign(target, src) {
for (const prop in src) {
target[prop] = src[prop]
}
return target
}
Michael
всем привет
такая проблемка нарисовалась
мож кто встречался
или как диспачить в редакс из компонента который внутри drawernavigator-a
Michael
Gena
Друзья, а как вы ошибки обрабатываете (те, которые как исключения передаются). Я вот к чему, допустим есть код:
try { ... } catch (e) { somelogger.log('Error: ', e) }
Gena
И вот этот e может же быть чем угодно
Gena
Я могу в каждом таком месте делать что-то типа const msg = e.message ? e.message : '' + e и приводить к строке, но при этом стек теряется. С другой стороны с этим стеком всё равно сделать ничего невозможно без source maps... Кто какие стратегии логгирования использует?
Gena
Тут просто есть разные случае. Есть ошибки на которых надо упасть... и с ними всё просто, там просто не надо catch никаких, либо rethrow делать и по ним RedBox или Sentry отлично отработают (но приложение закроется у пользователя). Это фатальные ошибки.
А вот есть ошибки, про которые мне интересно знать что они есть и интересны подробности, но падать там не надо. Более того стек не надо до верха раскручивать. Т.е. я их в нужном месте перехватываю в catch блоке и вот дальше хочется их залоггировать. В идеале со стек-трейсом (но можно и без него...). Вот думаю как стрингифицировать правильней. (Ну и про стек-трейс тоже заодно...)
Кирилл
https://twitter.com/mobileunderhood/status/1086536652376428544
Gena
Я понял, что пытаюсь решить целый пучок проблем совершенно разных. Надо по одной, иначе даже описать не получается четко )))
Gena
Вот вопрос. Есть объект у которого Error в прототипе. Как его залоггировать через console.warn/console.error в RN так, чтоб стектрейс декодированный увидеть не точки логгирования, а того места, где этот объект родился? (DEV=true)
Ruslan
Как можно починить проблему с ":CFBundleIdentifier", Does Not Exist, из xcode проект запускается без проблем, но стартуя командой запуска ios из консоли сборка с ошибкой этой
Dmitry
Michael
Всеи привет, есть вот така странность когда запускаю приложение на iphone то <View
onLayout={event => this._onLayout(event)} не вызывается, а когда на симуляторе, то все вызывается. в чем может быть проблема и есть или еще способ узнать высоту view ?
不退転」
Пипл, такой вопрос, юзер находится на экране Х, если юзер делает force quit из приложения, вызывается ли на экране Х метод componentWillUnmount?
不退転」
Кирилл
Кирилл
Кто-нибудь работал с декораторами?
Проблема такая - у таргета хочу достать имя target.constructor.name, достаю, но в релизе после минификации возвращает не исходное имя, то есть не MyClass а какой-нибудь n. Вопрос - как можно достать реальное имя?
Или как в декоратор свойства неявно передать тип декорируемого свойства?
гугление наводит на мысль что никак) остается вариант с получаением реального имени инстанса
class MyClass {
@decorator
foo!: Bar
}
Не очень хочется явно передавать @decorator(Bar)
Rinat
ребят привет. вопрос. новые приложения исключетельно только через экспо? crna все?
Dmitry
Ruslan