Vladimir
Владимир
ага, и подрубать ненужный реселект?
Владимир
зачем?
Vladimir
Не нужно подрубать никакой реселект
Владимир
когда все уже есть
Vladimir
Выделяешь чистый лэйаут и реализуешь его как функцию
Vladimir
Дальше уже можно сверху навесить стейт, анимации, что угодно
Murad
для тех кто не писал html/css, это может быть non-easy абстракцией
Владимир
Владимир
ну кроме того что он ЧИСТЫЙ
Murad
simplicity прежде всего
hlomzik
ПОТОМУ ЧТО ЭТО ОХУЕННО
Vladimir
Отделяешь лэйаут от логики
Vladimir
В РН можно по разному реализовать между iOS/Android
Vladimir
Вообще за тем же, зачем и вообще идет разделение на компоненты
Murad
если компонент чистый, то это дает тебе ряд предположений:
- компонент ничего не меняет снаружи
- компонент зависит только от своих пропсов (а значит легко отслеживаемый через дев-тулзы)
Владимир
логика скорее всего и так где-нить в редаксе
Murad
что в целом, дает тебе огромное преимущество "не думать" большим массивом компонентов
Vladimir
Даже если упороться по редаксу, то все равно в компонентах своя логика
Vladimir
Анимации всякие, жесты и т д
Murad
есть и ui логика, типа анимаций или промежуточных стейтов
Владимир
ну все равно приходим к тому, что стейт где-то есть, так?
Vladimir
Естественно
Владимир
только вместо одного компонента - два или больше
Vladimir
Так в этом ничего плохого
Владимир
ну и хорошего тоже
Murad
да, но тк стейт это complex, то лучше его держать в минимизированном виде, не смешивая
Владимир
все ситуативно
Vladimir
А то так можно и все приложение в одном классе написать
Владимир
вообще можно
Murad
да, зачем впринципе уходить от index.platform
Murad
во, ден переименовал даже их
одно - для показа
второе - для инкапсулирования изменяющейся логики
https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0
Murad
по сути, это фундаментальный подход "разделения на консьерны"
просто с реакт спецификой
Vladimir
Кстати, вполне можно делать и чистые компоненты с анимацией
Vladimir
Анимация при этом передается через пропсы
Murad
тогда анимация находится в пэренте
Vladimir
ага
Vladimir
И пэрент уже рулит
Murad
тогда это чистый компонент, возвращающий дерево
Murad
анимационную манипуляцию уже реакт делает с деревом
Vladimir
Да, он просто поддерживает опциональную анимацию
Murad
компонент остается чистым, а стейт находится внутри Animate.Value
Vladimir
Да
Владимир
ну в общем, просто надо помнить, что у этого есть цена, а профит от реиспользования не всегда удается получить
Anonymous
REFGTNBDSH7
Aleksei
Aleksei
ну кстати stateless компоненты неплохо так защищают от использования хуков реакта, по опыту - если юзаются хуки, жди баги
Murad
я бы уточнил - защищают от соблазна использовать хуки
Aleksei
Murad
хуки усложняют, изза необходимости помнить "что за чем"
Murad
но основное усложнение в том что в них используют императивные вызовы
Vladimir
Использование хуков неизбежно
Vladimir
В РН, по крайней мере
Vladimir
И рефов
Murad
по разному
если положить стейт в редюкс
то большинство приложений легко делается без хуков
Vladimir
И вызова императивных методов
Murad
в целом, хуки часто используются, если изолированный библиотечный компонент
Murad
но мы его воспринимаем как "черный ящик" который должен работать
Vladimir
Если приложение без анимаций - то может быть
Aleksei
Использование хуков неизбежно
смысл не в полном отказе, а в меньшем использовании) собсн-о как в фп, чем меньше сайд эффектов - тем лучше
Vladimir
Ну эт само собой
Kirill
Всем доброе утро!
Кто-нибудь пытался разобратсья зачем RN добавляет пермишны на Photos/Media/Files и Device ID & call information? Есть issue https://github.com/facebook/react-native/issues/5886 где это разбирают и пишут как убрать неиспользуемые разрешения (WRITE_EXTERNAL_STORAGE, READ_PHONE_STATE, READ_EXTERNAL_STORAGE).
Но я так и не могу понять зачем они добавляются?
Alexander
Видимо, чтобы из коробки их компоненты и api работали
Kirill
ну AsyncStorage их коробки a SQLite DB испольузет и не требует никаких прав
Kirill
в принципе после отключения никаких изменений не заметил, но думаю может есть какие подводные
Андрей
возник вопросик каверзный...
как вообще реактнативе норм или не ?
Андрей
чот глянул в гитхаб ... там версия 1000.0
https://i.imgur.com/b6ZYitT.png
так делают или когда забили .... ну или у них отдельно версия вешается перед паблишем в нпм
Андрей
планирую попробовать. Подскажите вообще проблемная тема ?
Андрей
функционал у меня не сложнее чем обычный сайтик.
не придётся часть функционала допиливать на какомнить обжективе-си или свифте ?
Aleksei
Aleksei
или просто не стали чтобы у себя ниче не ломать
Aleksei
Ostap
Всем привет. Кто нибудь заводил full screen video на андроиде с помощю https://github.com/react-native-community/react-native-video ?
Kirill
Ostap
вопрос: как ?
есть
<Video
ref={ref => this.video = ref}
source={{ uri: this.props.source.src }}
style={styles.fullScreen}
rate={this.state.rate}
paused={this.state.paused}
volume={this.state.volume}
muted={this.state.muted}
resizeMode={this.state.resizeMode}
onLoad={this.onLoad}
onProgress={this.onProgress}
onEnd={this.onEnd}
onAudioBecomingNoisy={this.onAudioBecomingNoisy}
onAudioFocusChanged={this.onAudioFocusChanged}
repeat={false}
/>
Ostap
и есть this.video.presentFullscreenPlayer();
Ostap
но оно не пашет
Kirill
что не пашет? делаешь
position: 'absolute',
top: 0,
left: 0,
bottom: 0,
right: 0
Ostap
ну на iOS там нативный видео плеер открывается
Ostap
и еще вопрос, я с дуру сделал → react-native-git-upgrade 0.43.3
теперь не могу откатиться