Andrew Kiselev
хоть и relay modern звучит как новая горячая штука, но он менее френдли для массовой разработки. Если писать поверхностно, то: Сложно искать решения багов по relay, а если они есть, то надо ждать команду фб, пока они внесут правки. Документация поверхностная, мало best practice. Есть непонятные баги с react-navigation Есть концептуальные сложности с react-nativation
Andrew Kiselev
а так, кеширование есть в apollo и relay
Andrew Kiselev
чуть позже попробую еще раз сделать прототип с relay, посмотрю что получится. Чет в него вцепился 🙂
Andrew Kiselev
мне понравился cursor pagination, поэтому буду его использовать вне зависимости от фреймворка на клиенте
Andrew Kiselev
если кому интересно, могу ссылок на статьи покидать
Andrew Kiselev
просто у меня проект по структуре данных графовый, поэтому оправданно такое решение 🙂
Aleksei
что за cursor pagination)
Andrew Kiselev
https://dev-blog.apollodata.com/understanding-pagination-rest-graphql-and-relay-b10f835549e7
Andrew Kiselev
для начала)
Aleksei
👍
Andrew Kiselev
зато все кто прочитает станет сегодня умнее 👍
Aleksei
у меня были сомнения, это то о чем я подумал или нет, оказалось правильно подумал 😄
Andrew Kiselev
🙂
Vladimir
Что с Apollo, что с Relay удивляет, что они все занимаются нормализацией данных, хотя очевидно, что GraphQL изначально спроектирован без идеи нормализации.
Vladimir
Как бы хорошая абстрация вроде GraphQL должна порождать довольно простых клиентов, а в итоге из-за нормализации на клиенте и Apollo и Relay всё равно получились монстрами
Vladimir
Где-то видел презентацию, где ребята из Shopify описывали свой подход. Они не делают нормализацию на клиенте, а вместо этого мерджат новые приходящие данные в имеющиеся результаты прошлых GraphQL запросов
Vladimir
Жаль, что клиента такого нет готового пока. Для 80% проектов имхо и Relay и Apollo - дикий оверхед
Anonymous
Привет. Подскажите по react navigation, android. После авторизации, я перенаправляю пользователя в профиль. Но по нажатию back на телефоне его кинет опять на скрин авторизации. Как это исправить? Я перекинул на профиль, чтобы back не срабатывал, надо очистить историю или как?
Andrew Kiselev
да, надо очищать стек
Andrew Kiselev
ничего страшного, в твиттер приложение тоже иногда забывают очищать 🙂
Vladimir
http://dev.apollodata.com/core/how-it-works.html#normalize
Anonymous
да, надо очищать стек
примерчик можно, как очистить?
Andrew Kiselev
http://dev.apollodata.com/core/how-it-works.html#normalize
если использовать react-apollo, то его не обязательно интегрировать с redux и судя по всему на клиенте не происходит нормализация данных?
Andrew Kiselev
примерчик можно, как очистить?
все есть в доке, пожалуйста https://reactnavigation.org/docs/navigators/navigation-actions#Reset
Vladimir
Они всегда нормализуют. Redux там внутри всегда используется. В итоге они получают ответ от сервера, разбирают его, складывают в хранилище, а потом пересобирают так, чтобы он удовлетворял GraphQL запросу.
Andrew Kiselev
надо будет глянуть пост запрос
Vladimir
И там много веселья начинается когда у полей есть алиасы, аргументы, директивы и т.д. и т.п. - много чего нужно предусмотреть. Отсюда львиная доля сложности этих клиентов.
Danil
Я правильно понимаю, что в ListView / FlatList, если я хочу сделать какой-то тап, надо использовать touchable highlight?
Джон
Ребят, кто-то отправлял файлы через FormData?
Brown
Ребят, кто-то отправлял файлы через FormData?
let formdata = new FormData(); for (let k in dataRaw) { formdata.append(k, dataRaw[k]); } try { let response = await fetch('https://url', { method: 'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}, body: formdata });
Anonymous
А как линковали?
Danil
Aleksandr
Ну тут понятно, что CameraManager - undefined, либо поставили неправильно, либо не заимпортили, тут одно из двух
Archakov
Помогите решить одну траблу. Я такой способ юзал на сайте когда использовать redux и фильтровал данные по определенным критериям. Перед тем, как отрендерить данные, я делаю фильтрацию по избранным записям.
Archakov
Archakov
Если есть избранные, и я нажал показать только избранные, то все ок. Но если я уберу галочку, то из сторы основной стираются все записи и остается только та, которая была помечена как избранная.
Archakov
Хотя я не передаю action на изменение сторы
Anonymous
Кто нибудь юзал react native splash screen? Серьезная проблемка с ним
Aleksandr
+
Anonymous
+
Запускаю приложение. Все отрабатывает как надо. Но при выходе через back кнопку. После я заново открываю приложение, запускается splashscreen и зависает. Т.е. приложение уже не отрабатывает hide() т.к. оно уже запущено
Aleksandr
А вы вручную show не вызываете?
Anonymous
А вы вручную show не вызываете?
Show вызываю в mainactiviti.java и hide вызываю уже в приложении
Anonymous
Можно было бы в том же java файле закрывать через 2 сек. Но в java не силен. Юзал Timer для java но он не отрабатывает
Aleksandr
Да не это костыль, а версия сплэшскрина последняя?
Anonymous
Да
Aleksandr
show в onCreate вызывается?
Anonymous
Да
Aleksandr
public class MainActivity extends ReactActivity { @Override protected void onCreate(Bundle savedInstanceState) { SplashScreen.show(this); // here super.onCreate(savedInstanceState); } }
Anonymous
Да.
Aleksandr
У муня бывало глючило что при запуске приложухи сплэш экран вообще не уходил
Aleksandr
хотя до этого работало нормально (ничего не переустанавливая)
Aleksandr
и оно каким-то образом само прошло, хз магия
Aleksandr
может симулятор залагал
Aleksandr
хотя даже перезагрузка не помогала
Anonymous
На телефоне также
Anonymous
Этот косяк происходит если приложение back закрываешь. Он как бы закрывается но в таске остается
Anonymous
Если полностью закрыть и запустить все ок
Aleksandr
ну все равно я так понимаю show срабатывает по onCreate 1 раз и все
Aleksandr
до полной пересборки
Anonymous
++
Aleksandr
можно залогировать
Aleksandr
в onCreate
Aleksandr
посмотреть, как он отрабатывает
Anonymous
А как записывать логи в java. Я в java 0
Aleksandr
import android.util.Log;
Aleksandr
Log.v("Some", "String");
Aleksandr
в Студии -> Android Monitor -> Вкладка LogCat
Aleksandr
и там будет лог
Aleksandr
все, да логируется,
Aleksandr
каждый раз
Aleksandr
у меня при бэке и обратно
Aleksandr
сплш появляется, но он уходит
Aleksandr
вы наверное не там hide делаете
Aleksandr
определенно, где вы hide делаете?