Alex
Это ведь тоже чистый ?
Cenator 🐈
Нет
Cenator 🐈
Я выше написал
Alex
@itsjohncena , спасибо
Alex
Просто в самой доке react-native устанавливают expo-cli
Cenator 🐈
Андрей
Кто-нибудь знает менее костыльное решение на появление красного экрана смерти при попытке сделать скриншот тремя пальцами в андроиде, кроме как отключение самого красного экрана?
zamir
zamir
Alexsandr
Gena
Только что закончил интеграцию 0.58.0-rc.1 в наше приложение. И знаете что, оно работает. Всего один ворнинг в react-native-maps (https://github.com/react-native-community/react-native-maps/issues/2620)
Jack
Gena
Да. Ещё в пятницу. Если что, камнями не закидывайте, я тестировал только ios и только интеграцию через cocoapods
Jack
Мощь
Gena
И ещё... не знаю, как там у них это в стандартной интеграции устроено. В cocoapods, можно раздельно включать нативные компоненты. Так вот, я тестировал в режиме совместимости. Это получилось - jsiexecutor новый, но без фабрики, через старый CxxBridge
Preeternal
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
Dmitry
Dmitry
?
Yurii
Указан. Первое о чем подумал, что реакт перестает понимать что за item он рисует и проверил на месте ли идентификатор.
Yurii
Варнингов тоже нету. В эмуляторе пока вообще не удалось баг воспроизвести. Только в билде на телефонах. ios, andriod
Yurii
Поэтому с дебагом вообще беда(((
Dmitry
А в snack.expo.io вообще реально что то запустить? Висит уже минут 20 так
Dmitry
через ExpoClient на iOS вообще ничего не стартует
Dmitry
Berik
Berik
Но проще на девайсе
Dmitry
Dmitry
Berik
не стартует
Вообще никакие снеки? Или именно этот?
Berik
Скорее проблема конкретного проекта
Dmitry
Dmitry
проект рабочий
Dmitry
Dmitry
Dmitry
прикольно
Yurii
gist
https://gist.github.com/JuraSemenenko/7cd3ee44c91a797130a004171138f7d7
Eugene
Доброго времени суток:)
Как можно такое запилить, есть что-нибудь готовое? :) Что-то типа селекта
Eugene
Eugene
Eugene
🤔
Dmitry
Или в песочницу
https://snack.expo.io/@quarrant/lonely-peanut
@esmelov
Yurii
Dmitry
Yurii
Yurii
renderItem={this.renderTableItem} - вот так если я правильно понял?
Dmitry
Yurii
да
Ок. Тогда такой вопрос могу ли я вместо keyExtractor={item => item.id} писать - keyExtractor={item.id}
Yurii
Хотя глупый вопрос. Наверняка могу.
Gena
В общем, то же, что с renderItem )
Yurii
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} />
}
Yurii
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} ... />
}
}
Yurii
Gena
Проблема в том, что все эти причесывания, хотя и улучшают в целом производительность, могут и не решить вашей изначальной проблемы )
Yurii
Всем еще раз спасибо за советы по моей проблеме. Я искал баг в коде написаном не мною. После внесения тех правок которые мне советовали я обнаружыл что при каждой подгрузке данных у меня список ререндериться 8 раз. Переписав логику компонента, у меня получилось сейчас сократить вызов метода render до 3-ех раз. На списке в 1300 элементов(список подгружаеться по 15 элементов за раз) из 20-ти попыток баг получилось словить только один раз.
До этого я его ловил после 100 элементов каждый раз стабильно.
Eugene
Это немного не то)
Eugene
Скорей всего сам напишу 🤔
不退転」
Пипл, кто-то на проекте юзал Firebase Dynamic Links? Фича в том, что на андроиде переход по линке открывает приложение, но Linking.getInitialUrl и firebase.links().onLink() абсолютно ничего не ловят. Сидят они в ComponentDidMount в компоненте с провайдером (топ иерархии)