Alex
Это ведь тоже чистый ?
Cenator 🐈
Нет
Cenator 🐈
Я выше написал
Alex
@itsjohncena , спасибо
Alex
Просто в самой доке react-native устанавливают expo-cli
Cenator 🐈
Dmitry
Если получится, буду безмерно благодарен )
условно накидал с Animated куда код скинуть
Андрей
Кто-нибудь знает менее костыльное решение на появление красного экрана смерти при попытке сделать скриншот тремя пальцами в андроиде, кроме как отключение самого красного экрана?
zamir
условно накидал с Animated куда код скинуть
В лс можешь файл закинуть? Спасибо
Jack
Или в песочницу
Лучше так, мне тоже интересно
Gena
Только что закончил интеграцию 0.58.0-rc.1 в наше приложение. И знаете что, оно работает. Всего один ворнинг в react-native-maps (https://github.com/react-native-community/react-native-maps/issues/2620)
Gena
Да. Ещё в пятницу. Если что, камнями не закидывайте, я тестировал только ios и только интеграцию через cocoapods
Jack
Мощь
Gena
И ещё... не знаю, как там у них это в стандартной интеграции устроено. В cocoapods, можно раздельно включать нативные компоненты. Так вот, я тестировал в режиме совместимости. Это получилось - jsiexecutor новый, но без фабрики, через старый CxxBridge
Gena
RN Git upgrade сработал?
Я им не пользуюсь. Всё что я сделал в самом приложении, это поменял в package.json зависимости: react, react-test-renderer -> 16.6.3 metro-react-native-babel-preset -> ^0.49.1 react-native -> 0.57.0-rc.1 (вернее в эквивалент для нашего форка) Дальше: 'rm -rf node_modules && npm i', дальше git diff - провалидировал всё, дальше убедился, что тесты проходят. Дальше проапдейтил нативную часть: cd ios && pod update React yoga glog Folly DoubleConversion (это только для интеграции через cocoapods нужно)
Gena
JS код менять не пришлось
Gena
(нативный, впрочем, тоже)
Preeternal
А как же Андроид
Gena
А его я не тестировал, т.к. мы ещё не деплоимся под него. 😕
Preeternal
Я в последние 3 раза в отдельной ветке удалял все кроме папки с кодом и делал заново рн инит. С последующим рн линк. Git upgrade сломан почему то...
Preeternal
Само собой в package.json добавлял зависимости проекта
Gena
Ещё, оно скорей всего поменяется под Android немного, после мержа вот этого: https://github.com/react-native-community/react-native-releases/issues/41#issuecomment-445431757
Gena
Про react-native-git-upgrade могу только сказать, что по слухам, разработчики активно обсуждают переписывание cli (и даже начали его в master) и соответственно рабочий вариант появится уже в новом cli... Но это по слухам, сам я им не пользуюсь.
Gena
Если что, для апдейтов, когда они были большие и сильно затрагивали код приложения, я вот этот репо использовал: https://github.com/ncuillery/rn-diff/compare/rn-0.56.0...rn-0.57.2
Роман
'
Yurii
Доброе утро! Столкнулся с проблемой в FlatList’е. Рисую по 15 айтемов. После скролла к концу списка подгружаю еще 15 айтемов с бекенда. После 6-7 подгрузок начинается отрисовка по 2-3 одинаковых айтемов, которые повторяються, их позиция скачет на екране вверх вниз и переодически область выделенная под Flatlist становиться полностью белой. Никто с подобным не сталкивался?
Alexander
Только что закончил интеграцию 0.58.0-rc.1 в наше приложение. И знаете что, оно работает. Всего один ворнинг в react-native-maps (https://github.com/react-native-community/react-native-maps/issues/2620)
Релиз больше минорный, ченджлог небольшой https://github.com/react-native-community/react-native-releases/blob/3073b216c0a7105f2313e071bcc900471e9ce336/CHANGELOG.md
Dmitry
?
Yurii
Указан. Первое о чем подумал, что реакт перестает понимать что за item он рисует и проверил на месте ли идентификатор.
Yurii
Варнингов тоже нету. В эмуляторе пока вообще не удалось баг воспроизвести. Только в билде на телефонах. ios, andriod
Yurii
Поэтому с дебагом вообще беда(((
Dmitry
А в snack.expo.io вообще реально что то запустить? Висит уже минут 20 так
Dmitry
через ExpoClient на iOS вообще ничего не стартует
Berik
Но проще на девайсе
Dmitry
Yurii
Код Flatlist давай
Куда лучше код положить?
Berik
не стартует
Вообще никакие снеки? Или именно этот?
Dmitry
Вообще никакие снеки? Или именно этот?
ну у меня только этот подгружен. Запускаешь, показывается сплэш со знаком экспо и тишина
Berik
Скорее проблема конкретного проекта
Dmitry
Скорее проблема конкретного проекта
скорее это проблема экспо
Dmitry
проект рабочий
Dmitry
Dmitry
Dmitry
прикольно
Yurii
gist
https://gist.github.com/JuraSemenenko/7cd3ee44c91a797130a004171138f7d7
Gena
https://gist.github.com/JuraSemenenko/7cd3ee44c91a797130a004171138f7d7
Мало, хотелось бы ещё на item глянуть. Я видел похожее поведение, когда renderItem возвращал фрагмент, который оказывался списком нативных вью...
Eugene
Доброго времени суток:) Как можно такое запилить, есть что-нибудь готовое? :) Что-то типа селекта
Eugene
Eugene
Eugene
🤔
Dmitry
Или в песочницу
https://snack.expo.io/@quarrant/lonely-peanut @esmelov
Yurii
Мало, хотелось бы ещё на item глянуть. Я видел похожее поведение, когда renderItem возвращал фрагмент, который оказывался списком нативных вью...
item анимированая вьюха с несколькими небольшими компонентами внутри типа обертки для картинок. https://gist.github.com/JuraSemenenko/09f4b9c45656a1977417167fdccbe44b
Dmitry
реакт советует сделать item - purecomponent. Думаю попробовать именно это.
для начала можно избавиться от стрелочной функции в рендере итема
Yurii
для начала можно избавиться от стрелочной функции в рендере итема
Просто указать функцию? this.renderItem? React item сам передаст?
Yurii
renderItem={this.renderTableItem} - вот так если я правильно понял?
Yurii
да
Ок. Тогда такой вопрос могу ли я вместо keyExtractor={item => item.id} писать - keyExtractor={item.id}
Yurii
Хотя глупый вопрос. Наверняка могу.
Gena
Хотя глупый вопрос. Наверняка могу.
Нет. Более того, в ткущем варианте, здесь вы при каждом рендере передаете новую ф-цию, что вызывает рендер FlatList )
Gena
В общем, то же, что с renderItem )
Gena
так же, как и со всеми местами, где компонент хочет ф-цию - не определять эту ф-цию внутри render... у меня обычно такой паттерн: class SomeComp extends React.Component { render() { ... return <FlatList keyExtractor={this.keyExtractor} renderItem={this.renderItem} ... /> } keyExtractor = (item) => item.id renderItem = (item) => <MyItem item={item} /> }
Gena
Здесь эти ф-ции определяются один раз в момент создания объекта класса SomeComp и замыкают в себе this этого объекта (т.е. можно из них обращаться к свойствам, стейту и дергать другие методы) Если требуемая ф-ция не зависит от объекта, то можно её вообще отдельно определить, вот эквивалент предидущего: function keyExtractor(item) { return item.id } function renderItem(item) { return <MyItem item={item} /> } class SomeComp extends React.Component { render() { ... return <FlatList keyExtractor={keyExtractor} renderItem={renderItem} ... /> } }
Gena
Проблема в том, что все эти причесывания, хотя и улучшают в целом производительность, могут и не решить вашей изначальной проблемы )
Yurii
Всем еще раз спасибо за советы по моей проблеме. Я искал баг в коде написаном не мною. После внесения тех правок которые мне советовали я обнаружыл что при каждой подгрузке данных у меня список ререндериться 8 раз. Переписав логику компонента, у меня получилось сейчас сократить вызов метода render до 3-ех раз. На списке в 1300 элементов(список подгружаеться по 15 элементов за раз) из 20-ти попыток баг получилось словить только один раз. До этого я его ловил после 100 элементов каждый раз стабильно.
Eugene
Это немного не то)
Eugene
Скорей всего сам напишу 🤔
不退転」
Пипл, кто-то на проекте юзал Firebase Dynamic Links? Фича в том, что на андроиде переход по линке открывает приложение, но Linking.getInitialUrl и firebase.links().onLink() абсолютно ничего не ловят. Сидят они в ComponentDidMount в компоненте с провайдером (топ иерархии)