@reactnative_ru

Страница 785 из 878
Alexander
18.08.2018
21:54:05
Как можно определить в файле, react native или web?

Gena
18.08.2018
22:05:21
Как можно определить в файле, react native или web?
Config.web.js export default { type: 'web' } Config.ios.js export default { type: 'ios' } etc... SomeComponent.js import config from './Config' if (config.type === 'web') { console.log('this is web') } else { console.log('this is probably mobile') } И ещё около десятка разных способов... но лучше DI использовать

(а телеграм принципиально не умеет текст форматировать?)

Alexander
18.08.2018
22:06:54
Config.web.js export default { type: 'web' } Config.ios.js export default { type: 'ios' } etc... SomeComponent.js import config from './Config' if (config.type === 'web') { console.log('this is web') } else { console.log('this is probably mobile') } И ещё около десятка разных способов... но лучше DI использовать
Такое я знаю :) В общем, пишу библиотечку небольшую. И нужно, чтобы после сборки я смог импортировать модуль и он сам нужный импортировал

Google
Gena
18.08.2018
22:08:29
Такое я знаю :) В общем, пишу библиотечку небольшую. И нужно, чтобы после сборки я смог импортировать модуль и он сам нужный импортировал
Оставьте пользователю возможность конфигурить, передавать нужные компоненты... Некоторые делают ещё разные точки входа (тоже фактически пользователю оставляют конфигурацию)... к примеру, в RN мобх коннектор надо подключать как react-mobx/native

Alexander
18.08.2018
22:10:51
Оставьте пользователю возможность конфигурить, передавать нужные компоненты... Некоторые делают ещё разные точки входа (тоже фактически пользователю оставляют конфигурацию)... к примеру, в RN мобх коннектор надо подключать как react-mobx/native
Смотри. У меня есть проект и там да, несколько точек входа. Была поставлена задача вынести все это в отдельную библиотеку. Раньше я импортировал import Module from 'module' и из-за разных точек входа подключался нужный. А сейчас все будет собрано в один файл. Вот как такое решить?

Gena
18.08.2018
22:10:51
Просто если вы сейчас найдете способ и захардкодите это... потом придется обновляться для поддержки какого нибудь react-native-desktop, react-native-refrigerator и что там ещё может появиться... А если позволите конфигурить это извне, есть шанс, что пользователи смогут это адаптировать без модификации библиотеки

Мне казалось, что react-native-vector-icons такой метод используют, но сейчас не вижу там такого... ща найду что нибудь

Alexander
18.08.2018
22:14:35
Хотя не, жёсткий костыль

Gena
18.08.2018
22:15:54
Хотя не, жёсткий костыль
И он не сработает... т.к. импорт статический... можно только попытаться (как всякие полифилы работают) проверять глобальное окружение... вроде в RN есть global.navigator и там что-то про него написано

Но это шаткое решение довольно...

Alexander
18.08.2018
22:17:48
Но это шаткое решение довольно...
А если конфигурирование через env делать? Допустим, задавать process.env.PLATFORM и на основе него делать?

Gena
18.08.2018
22:19:25
А если конфигурирование через env делать? Допустим, задавать process.env.PLATFORM и на основе него делать?
Неочевидно для юзеров будет скорей всего + потребует дополнительной конфигурации бандлера. Если отдельной точкой входа, то это хотя бы очевидно...

Alexander
18.08.2018
22:20:19
Gena
18.08.2018
22:22:15
То есть предлагаешь не собирать проект в бандл? Либа будет юзаться только в шаблоне компании
Не знаю... ( Я бы так делал - собирал два бандла - один по умолчанию (для web), другой в поддиректорию /native для RN

Google
Alexander
18.08.2018
22:25:13
Неочевидно для юзеров будет скорей всего + потребует дополнительной конфигурации бандлера. Если отдельной точкой входа, то это хотя бы очевидно...
Просто в компании потребовалось делать приложение как для натива, так и для веба. Моя идея была такова. Мы делаем одно приложение. Вся логика независима от платформы. Платформа влияет только на отрисовку. Поэтому, допустим, есть HTTPService и один один для всего проекта. Там мне требуется использовать Storage. Раньше у меня была папка с двумя точками входа. А сейчас, если собирать бандл, то такое не сработает. Поэтому, скорей всего, мне придётся не собирать либу в бандл и тогда смогу реализовать через разные точки входа

Gena
18.08.2018
22:29:59
Просто в компании потребовалось делать приложение как для натива, так и для веба. Моя идея была такова. Мы делаем одно приложение. Вся логика независима от платформы. Платформа влияет только на отрисовку. Поэтому, допустим, есть HTTPService и один один для всего проекта. Там мне требуется использовать Storage. Раньше у меня была папка с двумя точками входа. А сейчас, если собирать бандл, то такое не сработает. Поэтому, скорей всего, мне придётся не собирать либу в бандл и тогда смогу реализовать через разные точки входа
Вот конкретно такую же задачу мы решали уже (правда в разрезе тестирования, а не веба), т.е. нужен был набор модулей, которые работают и под node и под RN. Решали через DI... т.е. был модуль с логикой, который экспортил основной класс, которому в конструктор передавался объект с нужным интерфейсом, типа (typescript): interface IStorage { read(): Promise<IAppData> save(data: IAppData): Promise<void> } В RN приложении был класс реализующий этот интерфейс с помощью AsyncStorage, а в консольном приложении был класс, который это через fs делал.

Это может начать выглядеть очень криво, если таких "внешних" зависимостей станет много... но в разрезе RN/web, я их много не вижу... т.е. даже UI туда если впихнуть, получится: - storage - network (возможно) - ui factory... штука, которая может плодить компоненты нужных типов для веба DOM, для RN View - что-то ещё внешнее может прицепиться... тогда я бы это оформлял в виде класса Environment, который уже содержал бы нужные зависимости...

Но это всё подходит для одного приложения... если писать отдельную либу для широкого использования, то это будет скорей всего очень сложно... тогда разные точки входа

Кто Android SDK знает хорошо? Задача, получить размеры окна (Window), именно окна, не экрана. Получить изнутри View, который, для простоты, уже приаттачен к этому окну. Желательно быстро, т.е. без RPC c WindowManager.

Play
19.08.2018
09:30:12
Где ошибка? <Image style={cover} source={image} />



Вставляю валиндый адрес: https://github.com/react-native-village/react-native-init/raw/master/stargate/images/Stargate_The_Ark_of_Truth.jpg

Все это в FlatList

?
19.08.2018
09:33:43
source={{ uri: '...' }}

Play
19.08.2018
09:34:29
source={{ uri: '...' }}
точно) спасибо!

Gena
19.08.2018
09:57:29
обычно достаточно дождаться onLayout у rootView
Это реализация SafeArea для андроид. Там отступы для системных UI, приходят в системе координат окна. А в общем случае сложно расчитывать что rootView (что нативный, что реактовский) будет занимать всё окно целиком... это лэйаут решает... т.е. он может быть меньше...

Но если не получится по простому, то два варианта, между которыми выбрать не могу... - размеры окна можно получить пообщавшись в WindowManager, это медленно, но верно )) - можно сказать пользователям библиотеки - "ничего не знаю, делайте так, чтоб ваш root view занимал всё окно целиком, мы от него отсупы безопасные определяем..."

Stas
19.08.2018
10:02:16
https://t.me/android_ru мне кажется тут быстрее можно получить ответ, как правильно

Gena
19.08.2018
10:03:49
можно подписаться на изменение размера rootview и на каждое изменение спрашивать текущий размер окна. в итоге при запросе из rn, будет всегда последнее значение - быстро
Да, это я под первым вариантом подразумевал... О, спасибо за ссылку... ща попробую... всё быстрей чем на SO вопрос сочинять.

Stas
19.08.2018
10:13:36
https://developer.android.com/about/versions/pie/android-9.0#cutout хз, может поможет

Gena
19.08.2018
10:17:06
https://developer.android.com/about/versions/pie/android-9.0#cutout хз, может поможет
Да, я читал... там сложная штука довольно... я пока хочу начать с самого простого варианта, который хотя бы без катаута системные UI измеряет... (на самом деле это автоматом и cutout должно перекрыть)

Google
Peter
19.08.2018
10:33:35
Ребят, у когонибудь была проблема при компиляции под андроид: Execution failed for task ':app:processReleaseResources'.

при ./gradlew assembleRelease

Execution failed for task ':app:processReleaseResources'. > Failed to execute aapt

гуглю, ничего не помогает

Gena
19.08.2018
10:34:41
Да... была... это может быть очень разное... надо логи билда смотреть (не помню, как-то подробные должны включаться)

Там за таском assembleRelease вся сборка целиком, в том числе бандлинг... так что ошибка где-угодно может быть

Peter
19.08.2018
10:35:45
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

с каким флагом запускать?

Stas
19.08.2018
10:35:58
Gena
19.08.2018
10:36:04
А... "Failed to execute aapt" не заметил... это сужает область поиска

Peter
19.08.2018
10:36:12
отключал в gradle.properties

android.enableAapt2=false

Play
19.08.2018
11:30:17
Вызвал у View следющие свойства: sub: { shadowColor: '#000', shadowRadius: 8, shadowOffset: { width: 0, height: 5}, shadowOpacity: 0.4 } Свойство применяются, но появляются YellowBox предупреждения: View #25 of type RCTView has a shadow set but cannot calculate shadow efficiently. Consider setting a background color to fix this, or apply the shadow to a more specific component. Что не так?

?
19.08.2018
11:32:30
попробуй background-color указать

Play
19.08.2018
11:36:54
Peter
19.08.2018
11:41:45
https://gist.github.com/fear48/6bb7461060c0ff289cb1ee5827fc9372

Ребят, гляньте плис ошибку, где искать?

Admin
ERROR: S client not available

Peter
19.08.2018
11:42:02
не могу никак решить :(

Alexander
19.08.2018
12:11:39
ребят, а на ios с винды дебаг версию приложения невозможно проверить?

Google
Peter
19.08.2018
12:58:15
Кто в курсе с чем может быть связана ошибка "Ошибка при установке"

пред. версию удалил перед установкой

Peter
19.08.2018
13:13:59
с установкой
можно было и не отвечать

?
19.08.2018
13:14:21
это лучший из возможных ответов на такой вопрос

あなたの神
19.08.2018
13:25:27
можно было и не отвечать
какой вопрос - такой и ответ

✡️Хаски
19.08.2018
15:30:10
Используете вы wix/react-native-navigation ? public poll Нет – 14 ??????? 58% @AaronAumer, @iLonny, @savelichalex, @DrLance, @ainoork, @andrewkslv, @anton_skv, @SReflex, @playra, @gblack9, @khorark, @atlonis, @leerman, Alexandr Да, пока на первой версии – 5 ??? 21% @the_cursedsoul, @renren_san, @imnotafraidof, Dmitry, @sintylapse Да, работаем с второй версией – 5 ??? 21% @alexsandrmenshikov, @devjs, @ThemNumbers, @trefiand, @offantik ? 24 people voted so far.

Aynur
19.08.2018
15:51:03


Play
19.08.2018
17:24:47
✅ Закончил курс для начинающих в React Native и готовлю следующий по навигации. https://www.youtube.com/watch?v=tz_pOxQFcdo&list=PLth6QPteH5guFUwQj1iCdu-SOZ7O5KCz4

Sergey
19.08.2018
17:30:04
Спасибо, подписался)

Dmitry
19.08.2018
19:51:47
Задумался о таком, нет ли какого ресурса с заданиями по разработке приложений, чтобы скилл потренировать?

Denis
19.08.2018
20:13:21
Привет всем, такая задача, при клике на кнопку, должен открыться почтовый клиент по умолчанию и отобразить alert после того как пользователь отправил сообщение

такое реально сделать с CRNA?

Play
19.08.2018
20:39:15
попробуй background-color указать
как сделать у View прозрачный цвет и не получать это предупреждение? View #237 of type RCTView has a shadow set but cannot calculate shadow efficiently. Consider setting a background color to fix this, or apply the shadow to a more specific component. transparent не работает

Alexander
19.08.2018
21:02:02
Google
Alexsandr
19.08.2018
21:05:44
Или rgba(0,0,0,0)

Gena
19.08.2018
21:45:42
https://github.com/facebook/react-native/issues/11910
Жесть какая... (в смысле я видел эти ворнинги, и честно забивал на них, если по дизайну надо было сделать тени а background нельзя было задавать). Жесть в том, что баг репорт закрыт и залочен, но: 1. Объяснения нет и невозможно его написать. 2. Поведение не измененено в master... всё так и остаётся 3. Судя по комментариям про shadowOpacity... ворнинг в принципе не корректный, т.е. он возникает не всегда, когда есть условия для него...

Страница 785 из 878