Владимир
ага, и подрубать ненужный реселект?
Владимир
зачем?
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
ну кстати stateless компоненты неплохо так защищают от использования хуков реакта, по опыту - если юзаются хуки, жди баги
Murad
я бы уточнил - защищают от соблазна использовать хуки
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
или просто не стали чтобы у себя ниче не ломать
Ostap
Всем привет. Кто нибудь заводил full screen video на андроиде с помощю https://github.com/react-native-community/react-native-video ?
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 теперь не могу откатиться