@reactnative_ru

Страница 707 из 878
Sergey
22.06.2018
10:12:38
Потом система апскейлит картунку если плотность экрана выше mdpi

Dan
22.06.2018
10:13:25
товарищи, у кого то опыт вкорячивания openCV в RN (можно native) есть?

OCR | распознование качества картинки, вот такие вещи

Maria
22.06.2018
10:21:05
Нельзя просто сложить картинки в папку drawable
а можно сложить все в drawable-xxhdpi ? андроид вроде тогда же будет сам даунгрейдить картинку

Google
Artem
22.06.2018
10:54:43
Иначе могут быть проблемы с использованием памяти )

Sergey
22.06.2018
10:55:42
а можно сложить все в drawable-xxhdpi ? андроид вроде тогда же будет сам даунгрейдить картинку
андроид сначала будет грузить полноразмерную картинку, потом даунскейлить

те что не грузились были с каким разрешением в drawable? @maria_IT

Maria
22.06.2018
11:07:41
1920 на 1080 ? Какая там максимальная ширина в пикселях у андроидов?

Sergey
22.06.2018
11:08:09
максимальный размер текстуры варьируется от девайса и железа. Cейчас на мощных устройствах максимальный размер текстуры 4096x4096. На устройствах послабее естественно будет меньше

нельзя так делать )

Maria
22.06.2018
11:12:27
Спасибо :) Подскажите, где можно нагенерить под разные разрешения картинки? Я нашла img-back.in, но там пачку нельзя сразу закинуть, только по одной получается

Sergey
22.06.2018
11:13:09
sketch и photoshop умеют, про онлайн ресурсы не вкурсе

kor
22.06.2018
11:46:19
Кто-нибудь сталкивался с тем, что redux-persist работает на ios, но не работает на android?

Sergey
22.06.2018
11:49:28
@Bringoff в redux-persist используется механизм IPC? куда он сторит данные

Google
Vlad
22.06.2018
11:53:28
@Bringoff в redux-persist используется механизм IPC? куда он сторит данные
Я отвечу. На react он использует localStorage, на RN - AsyncStorage. А AsyncStorage - на iOS он чисто plist делает и сторит в файлах. На андроиде - RocksDB или sqlite On iOS, AsyncStorage is backed by native code that stores small values in a serialized dictionary and larger values in separate files. On Android, AsyncStorage will use either RocksDB or SQLite based on what is available.

Sergey
22.06.2018
11:53:57
значит есть ограничение в 2мб

может стейт слишком жирный ? ))

Denis
22.06.2018
11:59:59
Стейт на 2мб? Что вы туда пихаете-то? оО

Alex
22.06.2018
12:00:44
Мне кажется, с аватаркой nullcpp замечательно задавать вообще любые вопросы

Alex
22.06.2018
12:02:04
И отвечать на них тоже
Ответ типа "Не пытайся мутировать пропы. Они не для этого")))

Denis
22.06.2018
12:02:28
Ответ типа "Не пытайся мутировать пропы. Они не для этого")))
Ну или так: "Опять мутируешь пропы небось?"

Алексей
22.06.2018
12:07:51
Немного про AsyncStorage и почему для большинства случаев его вполне хватает и можно не тащить "серьезную" БД. Если ваш стейт меньше 2МБ, то можно даже не париться. Если есть массивные списки и все должно быть доступно оффлайн, тогда все зависит от того нужно ли делать запросы к этим данным, и поддержку каких устройств нужно обеспечить. До 20МБ и при простых запросах, я бы всё ещё использовал комбинацию глобального стейта, не сериализуемого за раз, а по частям + селекторы. https://github.com/ptmt/using-async-storage-in-react-native

давно не цитировал Диму)

Nikolay
22.06.2018
12:44:43
Всем привет. Работаю с react-native-sound. При попытке загрузить звуковой файл в приложение выдаётся ошибка { "code":"ENSOSSTATUSERRORDOMAIN1685348671", "nativeStackIOS":[ "0 MorzeMessenger 0x00000001067bd276 RCTJSErrorFromCodeMessageAndNSError + 134", "1 MorzeMessenger 0x00000001067bd1a3 RCTJSErrorFromNSError + 275", "2 MorzeMessenger 0x00000001066a0514 -[RNSound prepare:withKey:withOptions:withCallback:] + 1588", "3 CoreFoundation 0x0000000109ae636c __invoking___ + 140", "4 CoreFoundation 0x0000000109ae6240 -[NSInvocation invoke] + 320", "5 CoreFoundation 0x0000000109afec26 -[NSInvocation invokeWithTarget:] + 54", "6 MorzeMessenger 0x00000001067505fc -[RCTModuleMethod invokeWithBridge:module:arguments:] + 2796", "7 MorzeMessenger 0x00000001068021c2 _ZN8facebook5reactL11invokeInnerEP9RCTBridgeP13RCTModuleDatajRKN5folly7dynamicE + 786", "8 MorzeMessenger 0x0000000106801cef _ZZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEiENK3$_0clEv + 127", "9 MorzeMessenger 0x0000000106801c69 ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 25", "10 libdispatch.dylib 0x000000010f710177 _dispatch_call_block_and_release + 12", "11 libdispatch.dylib 0x000000010f7111ba _dispatch_client_callout + 8", "12 libdispatch.dylib 0x000000010f718d3d _dispatch_queue_serial_drain + 654", "13 libdispatch.dylib 0x000000010f7195a0 _dispatch_queue_invoke + 329", "14 libdispatch.dylib 0x000000010f715c97 _dispatch_queue_override_invoke + 477", "15 libdispatch.dylib 0x000000010f71b980 _dispatch_root_queue_drain + 568", "16 libdispatch.dylib 0x000000010f71b6ea _dispatch_worker_thread3 + 119", "17 libsystem_pthread.dylib 0x000000010fbd05a2 _pthread_wqthread + 1299", "18 libsystem_pthread.dylib 0x000000010fbd007d start_wqthread + 13" ], "userInfo":{ }, "message":"The operation couldn’t be completed. (OSStatus error 1685348671.)", "domain":"NSOSStatusErrorDomain" }

Сам код выглядит так: export const whoosh1 = new Sound('sound1.mp3', Sound.MAIN_BUNDLE, (error) => { if (error) { console.error('failed to load the sound ' + JSON.stringify(error)); return; } });

Файл звука лежит в файлах приложения, xcode я его добавил в ресурсы

Алексей
22.06.2018
12:47:15
я бы здесь бряку в xcode поставил [RCTModuleMethod invokeWithBridge:module:arguments:] и смотрел уже в дебаггере

Nikolay
22.06.2018
12:48:23
я бы здесь бряку в xcode поставил [RCTModuleMethod invokeWithBridge:module:arguments:] и смотрел уже в дебаггере
Что гуглить, чтобы узнат как это сделать? Разработку под ios знаю весьма поверхностно

Алексей
22.06.2018
12:48:38
я бы здесь бряку в xcode поставил [RCTModuleMethod invokeWithBridge:module:arguments:] и смотрел уже в дебаггере
не то скопировал, [RNSound prepare:withKey:withOptions:withCallback:] - вот здесь бряку

Что гуглить, чтобы узнат как это сделать? Разработку под ios знаю весьма поверхностно
в Libraries в xcode должно быть видно исходники этой либы, вот там искать класс RNSound и метод prepare

Nikolay
22.06.2018
12:50:06
Ок, спасибо

Artem
22.06.2018
13:09:12
Denis
22.06.2018
15:03:18
Посоветуйте что почитать или посмотреть по RN?

Google
Alex
22.06.2018
15:03:42
доку + ютуб

Книги очень ... странные

Denis
22.06.2018
15:04:16
Доки мало)

Alex
22.06.2018
15:05:06
Есть курсы, кстати, на торрентах какие-то. Там анимации в рн разбирают. Я ссыль щас не могу скниуть, тк с рабочего компа

Denis
22.06.2018
15:05:34
Погуглю, спасибо

Denis Bekishev
22.06.2018
15:22:25
Привет, подскажите куда копать, использую react-navigation, надо перед закрытием страницы проверять менял ли пользователь данные и если менял то спросить выйти или сохранить. ДЛя стандартной back кнопки Android я нашел в официальной справки решение, все работает, как мне аналогично сделать для back кнопки в хэдере навигатора? Что-то не вижу, мне надо переопределить поведение этой кнопки тоже получается? https://reactnavigation.org/docs/en/custom-android-back-button-handling.html

Denis Bekishev
22.06.2018
15:31:31
хмм, рекакс есть но навигацию не интегрировал пока не было надобности да и в офф справке вроде не особо рекомендуют. посмотрю ловятся ли экшины

Dmitriy
22.06.2018
15:32:09
Я всегда в проектах навигацию чз редакс пропускаю как правило это всегда пригождается

Denis Bekishev
22.06.2018
15:33:26
да не ловятся надо привязывать походу, Вроде еще можно через headerLeft переопределить onPress метод

Vladimir
22.06.2018
15:34:37
да не ловятся надо привязывать походу, Вроде еще можно через headerLeft переопределить onPress метод
Правильно, задаете navigationOptions, в нем headerLeft, ему листенер отдаете

Признак того, менялось или нет прокидываете через setParams

Dmitriy
22.06.2018
15:36:53
Правильно, задаете navigationOptions, в нем headerLeft, ему листенер отдаете
Там ведь получается надо компонент отдать что рендерить? Чтоб не велосипедить свое есть экспорт из react-navigation стандартного бэка с поддержкой этого пропса? Чет не вспомню

Denis Bekishev
22.06.2018
15:41:23
Доступа к хедерной кнопке "назад" нет что-ли ?
Стандартный хэдер от react-navigations юзается,

Признак того, менялось или нет прокидываете через setParams
Сапсибо почитаю, поищу как это сделать... пока не нарыл

Demuz
22.06.2018
15:44:34
Стандартный хэдер от react-navigations юзается,
Я с ним не работал. Не знал что у него нет доступа к кнопке назад. Прикольно же получается. Сами тогда хедер напишите, или возьмите из rn elements.

b0rke5
22.06.2018
15:48:17
Коллеги, не могу понять, что же я делаю не так. Запускаю приложение как обычно react-native run-android, оно ставится на телефон, появляется ошибка: Objects are not valid as a React child (found: object with keys {$$typeof, type, key, ref, props, _owner, store}). if you meant to render a collection of children, use an array instead. Если после этого включить Debug JS Remotely, оно начинает работать, все рендерится и все хорошо отлаживается. Потом когда хочу сделать signed-сборку, приложение сразу крашится после установки APK, ошибка в logcat такая же: Fatal Exception: com.facebook.react.common.JavascriptException: Objects are not valid as a React child (found: object with keys {$$typeof...

Google
George
22.06.2018
15:52:12
George
22.06.2018
15:55:14
Кстати - а у кого нибудь есть опыт получения кадров или анализа звука на rn в реальном времени? Например - визуализацию звука сделать или что то поверх камеры выводить?

b0rke5
22.06.2018
15:56:58
Такое было когда текст без тэга Text вставлен или какие то ещё Jsx ошибки
вы имеете ввиду такое <Text></Text>? вобще вроде ошибок нет, варнингов в дебаге не вижу никаких на верстку или стили..

b0rke5
22.06.2018
16:07:41
Такое, но внутри вместо текста js обьект
ну у меня вот такого много: <Text style={dataTextStyle}>{createdBy}</Text> а что в этом не так? почему это приводит к ошибке? удивительно, если честно

Vladimir
22.06.2018
16:13:32
createdBy - строка?

b0rke5
22.06.2018
16:14:09
строго говоря это any

то есть правильно надо делать так: <Text style={dataTextStyle}>{'' + createdBy}</Text> ?

Denis Bekishev
22.06.2018
16:21:07
Gena
22.06.2018
16:51:37
У нас он прекрасно работает будучи импортированным не последним, так что дело не в этом )

b0rke5
22.06.2018
17:12:19
У нас он прекрасно работает будучи импортированным не последним, так что дело не в этом )
Точнее он должен быть импортирован после корневого компонента скорее всего, экспериментально понял, что у меня вот так работает: ... import Router from './Router'; ... import firebase from 'firebase'; ... а так нет ... import firebase from 'firebase'; ... import Router from './Router'; ... Router - мой корневой компонент приложения в App.js. почему так, я не понимаю пока ?

Alexey
22.06.2018
18:15:59
Всем привет. А есть ли какие то подвижкм с Андройдом 64 битным?

Gena
22.06.2018
19:25:57
В багтрекере на github нет :-(

Ну почти нет, оказалось я упустил этот пулл-реквест... но ещё далеко: https://github.com/facebook/react-native/pull/19536#issuecomment-397953231

Dmitry
23.06.2018
07:50:14
подскажите как сделать ре-рендер одного скрина при его выборе? (createBottomTabNavigator v2.3.1) в доке нашел метод tabBarOnPress но как переопределить дефолтный хендлер и вызывать рендер только у одного скрина не могу догнать..

Google
Vladimir
23.06.2018
08:33:53
Костылями через миддлвэр с диспетчем по навигейт экшну? А в чем бизнес-задача?

Dmitry
23.06.2018
08:35:37
задача заключалась в том, чтобы при выборе скрина из нижней навигации делать ре-рендер скрина, для обновления данных, в лс подсказали использовать https://reactnavigation.org/docs/en/navigation-prop.html#addlistener-subscribe-to-updates-to-navigation-lifecycle , использовал willFocus, чего в общем то и хватило для решения задачи, спасибо еще раз !)

Vladimir
23.06.2018
08:51:58
О, круто, спасибо, чоо решением поделились

Dmitry
23.06.2018
09:52:19
Просто по нажатию на нижний таб вызывать свою функцию?
скорее не только на нажатие на саму ссылку внизу, а при переходе с любого места на нужный скрин, решение выше описал уже

Dmitry
23.06.2018
10:00:00
нет в данном приложении решил обойтись без него..)

Artem
23.06.2018
10:01:22
нет в данном приложении решил обойтись без него..)
Ну, это вы зря :) но вообще там в последнем реакте есть альтернатива редаксу для стейт менеджмента, забыл только название. Думаю, можно было бы локально к экрану прикрутить

Dmitry
23.06.2018
10:02:42
просто приложение простое, состоит всего из 3х экранов, поэтому подумал что не стоит тащить redux туда..) видимо зря, он бы пригодился тут не спорю))

Konstantin
23.06.2018
11:20:40
Никто не сталкивался с таким? Делаю в Xcode Product -> Archive получаю ошибку Unable to resolve module `./App` from `/Users/underquak3r/react/Events/index.ios.js`: The module `./App` could not be found from `/Users/underquak3r/react/Events/index.ios.js`. Indeed, none of these files exist: * `/Users/underquak3r/react/Events/App(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json)` * `/Users/underquak3r/react/Events/App/index(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json)` + [[ false != true ]] + [[ ! -f /Users/underquak3r/Library/Developer/Xcode/DerivedData/autonomous-eqyujevvtrinhxeolpiiznubzbtd/Build/Intermediates.noindex/ArchiveIntermediates/autonomous/BuildProductsPath/Release-iphoneos/autonomous.app/main.jsbundle ]] + echo 'error: File /Users/underquak3r/Library/Developer/Xcode/DerivedData/autonomous-eqyujevvtrinhxeolpiiznubzbtd/Build/Intermediates.noindex/ArchiveIntermediates/autonomous/BuildProductsPath/Release-iphoneos/autonomous.app/main.jsbundle does not exist. This must be a bug with' error: File /Users/underquak3r/Library/Developer/Xcode/DerivedData/autonomous-eqyujevvtrinhxeolpiiznubzbtd/Build/Intermediates.noindex/ArchiveIntermediates/autonomous/BuildProductsPath/Release-iphoneos/autonomous.app/main.jsbundle does not exist. This must be a bug with + echo 'React Native, please report it here: https://github.com/facebook/react-native/issues' React Native, please report it here: https://github.com/facebook/react-native/issues + exit 2

Алексей
23.06.2018
11:31:17
жсник собрать не может

вот этот файл советую посмотреть ./node_modules/react-native/scripts/react-native-xcode.sh там вызывается метро бандлер при сборке в архив

ну и соотв-о можно попробовать повторить команду что он собирает через терминал и уже найти причину

Alexander
23.06.2018
12:47:49
кто-то работал с firebase messaging? как мне сделать unsubscribe?

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