@reactnative_ru

Страница 296 из 878
Andrey
09.09.2017
17:11:00
За быстрый и исчерпывающий ответ)

Алексей
09.09.2017
17:11:29
Понял, спасибо)
обращайся ?

Andrey
09.09.2017
17:11:57
Теперь если что-то меняю, то только rebuild делать, верно? Уже магии с ‘ctrl+s’ и мгновенным обновлением не достичь?

Алексей
09.09.2017
17:12:50
Теперь если что-то меняю, то только rebuild делать, верно? Уже магии с ‘ctrl+s’ и мгновенным обновлением не достичь?
не, это все packager делает (который сейчас metro bundler), так что тоже должно работать

Google
Алексей
09.09.2017
17:13:32
по сути в дев режиме у тебя есть сборка нативной части и сборка js-а, который сервер поднимает и по сети бандл в нативную прилагу отправляет

Andrey
09.09.2017
17:14:42
Хм, значит что-то в этот раз не сработало, попробую еще раз)

Спасибо еще раз, очень помог) ?

Maksim
09.09.2017
17:15:13
Когда ставишь новые либы, надо билдить заново

Если ставишь либу, которая юзает нативные АПИ

Алексей
09.09.2017
17:15:52
Если ставишь либу, которая юзает нативные АПИ
правильней будет сказать, которую надо линковать ?

Maksim
09.09.2017
17:16:08
?

Правильно)

Andrey
09.09.2017
17:16:37
Алексей
09.09.2017
17:16:50
ну и емнип такое касается ресурсов, картинок к примеру

Max
09.09.2017
18:01:13
Коллеги кто работает на rn и использует технологию в продакшене, поделитесь информацией. Насколько по вашему в данный момент и в перспективе востребована технология в рф? В вашей команде одни и те же программисты пишут под обе платформы или есть отдельные люди для ios и android? Узучаю рынок по отечественным площадкам найма и не вижу особо спроса, как по вашему - стоит ли кладывать силы будучи нативным разработчиком?

Play
09.09.2017
18:12:44
я вообще всегда react-native init юзаю ?
react-native init убрали на официальной странице в отдельную вкладку, поэтому многие новички идут сейчас по пути через expo



Google
Play
09.09.2017
18:14:18
это да)

Egor
09.09.2017
18:43:27
Check out @dan_abramov’s Tweet: https://twitter.com/dan_abramov/status/906288624110534656?s=09

Vladimir
09.09.2017
20:00:33
Абрамов никогда не скрывал, что редукс пишется в одну строчку

Дмитрий
09.09.2017
20:01:47
В этом и его прелесть: маленький по размеру, но тем не менее имеет огромное место в архитектуре приложения и мы его здесь бесконечно обсуждаем.

А по поводу Expo ещё ни разу не столкнулся с причиной отказаться от него и считаю это крайне противоестественным. Не для того развивается javascript-инструмент для создания мобильных приложения, чтобы я снова лез писать на этом java и заморачивался с проектом.

Vladimir
09.09.2017
20:03:27
Его прелесть в том, что он демострирует, что люди буду использовать любую бесполезную либу, если им скажут, что так правильно и круто

Vladimir
09.09.2017
20:04:08
Ребята, есть в чате кто из Минска?

Vladimir
09.09.2017
20:05:44
Нет

Дмитрий
09.09.2017
20:07:12
"Да ничего" или "нет ничего"?)) Видимо ничего. Можно и так, никто ж не заставляет.

Vladimir
09.09.2017
20:07:26
Нет, не использую

Дмитрий
09.09.2017
20:09:10
Я наоборт остановился на том, что абсолютно всё храню в redux. Нельзя сказать что это правильно или нет, просто выбор. Redux way.

Vladimir
09.09.2017
20:09:57
Абрамов сам говорит- не используйте редукс, пока не почувствуете, что он нужен

Если все делать правильно, то он никогда не нужен

Дмитрий
09.09.2017
20:12:33
Так никто ж не говорит что без него что-то не получиться. Это вопрос построения архитектуры. Кто-то ещё mobx юзает.

Vladimir
09.09.2017
20:13:44
Да людей вообще каша в голове, они будут использовать что угодно, о чем в твиттере пишут

? animufag ?
09.09.2017
20:14:28
Если все делать правильно, то он никогда не нужен
а что вместо него? вечный цикл с дёрти чекингом?

Vladimir
09.09.2017
20:14:49
Просто реакт, как он есть

? animufag ?
09.09.2017
20:15:23
неплохо

Google
? animufag ?
09.09.2017
20:15:47
видимо реакт однозначно задаёт правила как обновлять стейт

Vladimir
09.09.2017
20:16:07
Правила задаешь ты, да

? animufag ?
09.09.2017
20:16:55
ну тут видимо есть какое то "правильно"

Vladimir
09.09.2017
20:17:29
Не знаю, где это -тут, но скорее всего нет

? animufag ?
09.09.2017
20:17:57
Если все делать правильно, то он никогда не нужен

Vladimir
09.09.2017
20:20:09
Это да. Нужно моделировать стейт так, чтобы его можно было спокойно передавать через пропсы

? animufag ?
09.09.2017
20:20:30
не то чтобы редукс супер круто. работу с асинхронными вызовами он не задаёт и что делать с большим стейтом не говорит. но утверждения про то что есть какой то "правильный" путь вместо этого хайпового редукса звучит так себе

Vladimir
09.09.2017
20:21:35
Он "правильный" с той точки зрения, что с ним не нужна стремная либа, которая ломает модель реакта

? animufag ?
09.09.2017
20:21:45
аа тебя бесит то что редукс заставляет строить стейт чтобы он ок через экшоны лез, когда тебе хочется его видеть удобным со стороны вьюх?

Vladimir
09.09.2017
20:22:16
Это можно делать и без редакса

Дмитрий
09.09.2017
20:27:09
Ну по себе могу сказать при то, что я полностью отказался от классов и использую только функциональные компоненты с редаксом, то от реакта и вправду не использую львиную долю его функционала.

Уже не очень то реакт получается)).

Play
09.09.2017
20:49:14
Vlad
09.09.2017
22:33:04
Andrew
10.09.2017
11:37:18
Ребят, кто в react-navigation использует вложенные TabNavigation + redux?

Andrew
10.09.2017
12:00:58
использую
У тебя на последней версии react-navigation не было проблем с переключением табов? Переключение табов у тебя примерно так работает?: tabBarComponent: ({ jumpToIndex, ...props }) => { const { navigation, navigationState } = props; const selectTab = (index) => { const lastPosition = navigationState.index; const tab = navigationState.routes[index]; const tabRoute = tab.routeName; const { setParams } = navigation; if (tabRoute === 'Chat') { navigation.dispatch(loadMessages()); } jumpToIndex(index); setParams({ tabFocused: tabRoute }); }; return <TabBarBottom {...props} jumpToIndex={selectTab} />; },

Google
Play
10.09.2017
12:11:22
Только вчера разобрался как через редакс менять состояние навигатора. Пример в оффициальной репе только путает, а все оказалось проше простого.

Andrew
10.09.2017
12:17:38
Только вчера разобрался как через редакс менять состояние навигатора. Пример в оффициальной репе только путает, а все оказалось проше простого.
Да, я вот смотрю у тебя все просто и работает ? У нас чего-то понакручено, понаворочено... попробую разобраться, спасибо за рабочий пример!

Play
10.09.2017
12:22:19
А по поводу Expo ещё ни разу не столкнулся с причиной отказаться от него и считаю это крайне противоестественным. Не для того развивается javascript-инструмент для создания мобильных приложения, чтобы я снова лез писать на этом java и заморачивался с проектом.
Может я что-то не доганяю по Экспо, но vim приучил меня ставить только те плагины, которые нужны для работы с кодом, а новые ставить по мере необходимости, таже и c react-native init. Зачем мне фиксить ошибки сборщика, которые не имеют отношение к React Native? Зачем мне Экспо с тучей ненужных мне библиотек, билдинг которых отнимает тучу времени по сравнению с react-native init? Какой профит от его использования?

Andrew
10.09.2017
13:00:06
переключаю табы через экшены в сторе
В общем победил я redux, огромное спасибо!

Play
10.09.2017
14:25:06
уау
да да Алекс красава!

Следуя здравому и логичному первому принципу Redux, что должен быть один «Единственный источник правды» начал переносить все состояние компонента в Redux store. С редюсером более менее ясно, а вот с thunk’ом пока не договорился) Что-то мой ImagePicker тупит: export const showImagePicker = () => dispatch => { const imageOptions = { title: 'Выбрать фото', storageOptions: { skipBackup: true, path: 'images' }, allowsEditing: true, maxWidth: 500, maxHeight: 500, quality: 0.8 } dispatch({ type: ADD_PHOTO_ATTEMPTED }) //photoLoading: true ImagePicker.showImagePicker(imageOptions, (response) => { if (response.didCancel) { dispatch({ type: ADD_PHOTO_FAILED }) //photoLoading: false } else if (response.error) { dispatch({ type: ADD_PHOTO_FAILED }) //photoLoading: false } else { const source = { url: response.uri } dispatch({ type: ADD_PHOTO_START, payload: source }) //photoLoading: false profilePhotoUri: source.url, } }) } Что делаю не так?

Murad
10.09.2017
14:38:33
а какие симптомы?

как вы делаете код красным?

Murad
10.09.2017
14:42:15
покажи вызов showImagePicker и mapDispatchToProps если есть

Play
10.09.2017
14:48:39
покажи вызов showImagePicker и mapDispatchToProps если есть
https://gitlab.com/gHashTag/FirebaseApp/blob/blob/src/screens/SignUpScreen.js

а какие симптомы?
ExceptionsManager.js:71 JSON value '{ url = "file:///Users/dmitriyvasilev/Library/Developer/CoreSimulator/Devices/FD0BDD…81A-8F647F6F5FE2/Documents/images/AA4598B4-5DCC-42E3-A854-6F683B0F5F3B.jpg"; }' of type NSMutableDictionary cannot be converted to NSString

Murad
10.09.2017
14:49:41
ну так, это не редюкса проблема

Google
Play
10.09.2017
14:50:22
где ошибаюсь?

Murad
10.09.2017
14:51:04
незнаю в этой либе судя по всему ImagePicker

он ожидает строку, но получает хеш {url: ''}

1. у тебя колбек ImagePicker.showImagePicker(imageOptions, (response) => {} вообще вызывается? проконсоль результаты, что там 2. какой экшн до редюкса доходит последним

Play
10.09.2017
14:54:23
Тогда здесь: const source = { url: response.uri } dispatch({ type: ADD_PHOTO_START, payload: source }) //photoLoading: false profilePhotoUri: source.url, }

Murad
10.09.2017
14:55:24
мб валится случайно не здесь? <Image style={profilePhoto} source={{ uri: photoUri }} resizeMode='cover' />

походу у тебя там { uri: {uri: '...'} }

Play
10.09.2017
14:58:53
починил, спасибо) source={photoUri}

? animufag ?
10.09.2017
15:01:36
походу у тебя там { uri: {uri: '...'} }
Статическая типизация нинужна

Murad
10.09.2017
15:02:37
нужно просто внимательно ошибки читать

вообще странно, проптайпсы Image должны были матюкнуться первыми

uri: PropTypes.string,

Igor
10.09.2017
16:06:03
А на Android/iOS под React Native можно же писать на нативном es2015 без babel?

Yuriy
10.09.2017
16:08:39
А на Android/iOS под React Native можно же писать на нативном es2015 без babel?
В принципе есть ограничения, но можно. Там JavaScriptCore и V8 хрома текущий - уже полно фичей ES6 и около того. babel-preset-react-native совпадает с env'ом под текущий хром и сафарю по тем же причинам. Так что... вы и так не транспилите прям в ES5 под RN. Я не в курсе что вылезает с упаковщика react-native.

Vladimir
10.09.2017
16:13:44
Там вроде достаточно старый jsc

Igor
10.09.2017
16:15:41
В принципе есть ограничения, но можно. Там JavaScriptCore и V8 хрома текущий - уже полно фичей ES6 и около того. babel-preset-react-native совпадает с env'ом под текущий хром и сафарю по тем же причинам. Так что... вы и так не транспилите прям в ES5 под RN. Я не в курсе что вылезает с упаковщика react-native.
Хм, у меня имено на Android (nexus 5x android 8.0) приложение падает тк не может найти тип Symbol Я так понимаю это тип из es2015 https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Symbol На ios симуляторе или девайсе все работает. Если у них общий JavaScriptCore, то я не понимаю - почему на ios работает, а на android - нет.

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