Vladimir
Нет, не использую
Дмитрий
Я наоборт остановился на том, что абсолютно всё храню в redux. Нельзя сказать что это правильно или нет, просто выбор. Redux way.
Vladimir
Абрамов сам говорит- не используйте редукс, пока не почувствуете, что он нужен
Vladimir
Если все делать правильно, то он никогда не нужен
Дмитрий
Так никто ж не говорит что без него что-то не получиться. Это вопрос построения архитектуры. Кто-то ещё mobx юзает.
Vladimir
Да людей вообще каша в голове, они будут использовать что угодно, о чем в твиттере пишут
Vladimir
Просто реакт, как он есть
Влод
неплохо
Влод
видимо реакт однозначно задаёт правила как обновлять стейт
Vladimir
Правила задаешь ты, да
Влод
ну тут видимо есть какое то "правильно"
Vladimir
Не знаю, где это -тут, но скорее всего нет
Влод
Если все делать правильно, то он никогда не нужен
Vladimir
Это да. Нужно моделировать стейт так, чтобы его можно было спокойно передавать через пропсы
Влод
не то чтобы редукс супер круто. работу с асинхронными вызовами он не задаёт и что делать с большим стейтом не говорит.
но утверждения про то что есть какой то "правильный" путь вместо этого хайпового редукса звучит так себе
Vladimir
Он "правильный" с той точки зрения, что с ним не нужна стремная либа, которая ломает модель реакта
Влод
аа тебя бесит то что редукс заставляет строить стейт чтобы он ок через экшоны лез, когда тебе хочется его видеть удобным со стороны вьюх?
Vladimir
Это можно делать и без редакса
Дмитрий
Ну по себе могу сказать при то, что я полностью отказался от классов и использую только функциональные компоненты с редаксом, то от реакта и вправду не использую львиную долю его функционала.
Дмитрий
Уже не очень то реакт получается)).
Ulad🧑💻
who
Andrew Efimenko
Ребят, кто в react-navigation использует вложенные TabNavigation + redux?
Andrew Efimenko
У тебя на последней версии 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} />;
},
Andrew Efimenko
Спасибо, сейчас погляжу 👍
Andrew Efimenko
Да, я вот смотрю у тебя все просто и работает 🙂 У нас чего-то понакручено, понаворочено... попробую разобраться, спасибо за рабочий пример!
Влод
Вообще думаю это плохая штука. Особенно то что они используют форк реакт нетива и то что про реакт нетив они особо не упоминают.
Влод
Зато позволяет делать вау на всяких презентациях и воркшопах
Andrew Efimenko
В общем победил я redux, огромное спасибо!
Aleksei
Murad
уау
Murad
а какие симптомы?
Murad
как вы делаете код красным?
Murad
покажи вызов showImagePicker и mapDispatchToProps если есть
Murad
ну так, это не редюкса проблема
Murad
незнаю
в этой либе судя по всему ImagePicker
Murad
он ожидает строку, но получает хеш {url: ''}
Murad
1. у тебя колбек ImagePicker.showImagePicker(imageOptions, (response) => {} вообще вызывается?
проконсоль результаты, что там
2. какой экшн до редюкса доходит последним
Murad
мб
валится случайно не здесь?
<Image
style={profilePhoto}
source={{ uri: photoUri }}
resizeMode='cover'
/>
Murad
походу у тебя там { uri: {uri: '...'} }
Влод
Murad
нужно просто внимательно ошибки читать
Murad
вообще странно, проптайпсы Image должны были матюкнуться первыми
Murad
uri: PropTypes.string,
Igor
А на Android/iOS под React Native можно же писать на нативном es2015 без babel?
Yuriy
А на Android/iOS под React Native можно же писать на нативном es2015 без babel?
В принципе есть ограничения, но можно.
Там JavaScriptCore и V8 хрома текущий - уже полно фичей ES6 и около того.
babel-preset-react-native совпадает с env'ом под текущий хром и сафарю по тем же причинам.
Так что... вы и так не транспилите прям в ES5 под RN.
Я не в курсе что вылезает с упаковщика react-native.
Vladimir
Там вроде достаточно старый jsc
Yuriy
Vladimir
В JSC есть JIT, естественно
Igor
Судя по доке https://facebook.github.io/react-native/docs/javascript-environment.html
> On iOS simulators and devices, Android emulators and devices React Native uses JavaScriptCore
> On iOS JSC doesn't use JIT due to the absence of writable executable memory in iOS apps.
JSC поддерживает JIT, просто на iOS не используют.
Yuriy
Yuriy
В iOS политика безопасности не позволяет перезаписывать сегмент кода программы.
shashkov0
Ввиду частых начинаний новых проектов сделал простой бойлерплэйт. Мб кому-нибудь пригодится.
https://github.com/shashkovdanil/react-native-boilerplate
Yuriy
shashkov0
Напишите ишью
shashkov0
Я в принципе еще сторибук добавить хочу
shashkov0
На неделе займусь этим
Murad
shashkov0
Дмитрий
И многим понравится, что стили описываются в css-синтаксисе, а не как js-объект.
Murad
но ведь тогда не получится передавать ссылку на набор-стилей в виде индекса
или придется их каждый раз генерить/сравнивать, раздувая общий обьем используемой памяти или время проца
они как то это решали?
Дмитрий
Что значит "ссылка на набор стилей в виде индекса"?
Murad
StyleSheet.create создает {selector: Number}, единоразово передает через бридж сами стили, а потом только шлет референс
shashkov0
Я такое ни разу не использовал
Murad
так а че - какой бенефит с них?
Murad
они добавляют свой апи/компоненты множатся/таблица стилей хранит в себе знания о пропсах компонента (излишнее связывание имхо)
Дмитрий
Я понял о чём ты. Это используется для кеширование фреймворком. а не кодером.
Murad
всмысле? кодеру дали этот инструмент и сказали "юзай, так будет быстрее"
shashkov0
Хранит знания о пропсах если ты их передаешь, стили пишутся как обычный css, апи простейшее, стилей столько же, сколько и без стайлд компонентс. Для меня плюс это семантика компонентов. Мне удобно создать <Wrapper /> и везде им оборачивать что-то, чем юзать стайлшит для этого
shashkov0
В общем дело вкуса
Murad
не ну ок, я ведь тоже несколько лет верстал и понимаю мотивацию ))
Murad
вообще конечно засунуть .css файлики в реакт нейтив у меня давно чешутся руки, но пекеджер еще донедавна не давал такую возможность
надо сделать еще одну попытку с метро-бандлером
Aleksei
Aleksei
Danil
Как правильно контроллировать цвет статус бара в react navigation?
Aleksei
Димка, кинул бы хоть на нужное место, а то шарюсь и не пойму где смотреть то) и что у тебя то camelCase то snake_case?)