Size: a a a

React Native — русскоговорящее сообщество

2020 February 13

ДР

Димка Реактнативный 🛸 in React Native — русскоговорящее сообщество
https://reactnavigation.org/docs/en/themes.html
И передавайте в тему любые ключи со значениями
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
вот компонент
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Источник: https://telegram-web.online
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
вот если прям под переменной повешать лог
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
то он раз 5 вызывается при любых действиях с состояниями. я думал компонент один раз загружается, а уже внутри него return перерисовывается
источник

GD

Gaysar Davletkildin in React Native — русскоговорящее сообщество
Игорь Стрелов
то он раз 5 вызывается при любых действиях с состояниями. я думал компонент один раз загружается, а уже внутри него return перерисовывается
как вариант, сохранять значение текущей страницы в стейте, а не в переменной
источник

МС

Макс Сивашов in React Native — русскоговорящее сообщество
Gaysar Davletkildin
предлагаешь на практике сразу учиться?)
Да самое быстрое тут начать на практике, т.к по багам и прочим проблемам только на практике узнаешь его
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Gaysar Davletkildin
как вариант, сохранять значение текущей страницы в стейте, а не в переменной
пробывал, вообще каша получается какая-то из за асинхронности стейта. Будет 2 раза рендер - один раз реакция на изменение страницы и потом на изменение данных и еще на изменение ключа loading
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
даже 3 получается
источник

GD

Gaysar Davletkildin in React Native — русскоговорящее сообщество
а что если подгружать данные в useEffect() и привязаться на изменение пейджа только?
источник

GD

Gaysar Davletkildin in React Native — русскоговорящее сообщество
Макс Сивашов
Да самое быстрое тут начать на практике, т.к по багам и прочим проблемам только на практике узнаешь его
согласен )
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Gaysar Davletkildin
а что если подгружать данные в useEffect() и привязаться на изменение пейджа только?
тоже проходил ) у меня этот компонент много раз переиспользуется в навигации. соответственно надо чистить данные перед изменением страницы. вообщем много костылей при таком подходе
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
не понимаю просто, почему компонент 5 раз рендерится даже при первом запуске
источник

d

dron in React Native — русскоговорящее сообщество
Date.prototype.toLocaleDateString работает на иос, но не работает на андроиде
И тож самое с Number.prototype.toLocaleString

Что можно сделать?
источник

DK

Dmitriy Kupriyanov in React Native — русскоговорящее сообщество
Игорь Стрелов
пробывал, вообще каша получается какая-то из за асинхронности стейта. Будет 2 раза рендер - один раз реакция на изменение страницы и потом на изменение данных и еще на изменение ключа loading
кэшируй данные в useRef добавляй флаги состояния, и тогда будет 1 раз только рендериться. Иначе аппка будет тупая.
источник

GD

Gaysar Davletkildin in React Native — русскоговорящее сообщество
Игорь Стрелов
тоже проходил ) у меня этот компонент много раз переиспользуется в навигации. соответственно надо чистить данные перед изменением страницы. вообщем много костылей при таком подходе
мне кажется, что если это переиспользуемый компонент, то стейт должен храниться в родителе, а сам компонент должен быть глупым и работать только с пропсами, которые получает от родителя
источник

VP

Vitaliy Ponomarev in React Native — русскоговорящее сообщество
Игорь Стрелов
не понимаю просто, почему компонент 5 раз рендерится даже при первом запуске
props и state где-то обновляются, верхний компонент перерисовывается и т.д.
А у функциональных компонентов изначально поведение не оптимизировано, они по умолчанию каждый раз перерисовываются.

В классовых можно сделать PureComponent или кастомный shouldComponentUpdate, а в функциональных нужно другие варианты решения смотреть, если не нужно перерисовывать, например мемоизация.

https://stackoverflow.com/a/54982216
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
спасибо ) то что нужно
источник

DK

Dmitriy Kupriyanov in React Native — русскоговорящее сообщество
кто-то работал с этим модулем https://github.com/dooboolab/react-native-iap
Я сделал yarn add react-native-iap
добавил <uses-permission android:name="com.android.vending.BILLING" />
добавил подписки https://prnt.sc/r1qtwq
пытаюсь их получить
const itemSkus = Platform.select({
   ios: [],
   android: [
       'com.braingain.month',
       'com.braingain.year',
       'com.braingain.sixmonth'
   ]
});

   const getItems = async () => {
       try {
           const products = await RNIap.getSubscriptions(itemSkus);
           console.log('Products', products);
       } catch (err) {
           console.warn(err.code, err.message);
       }
   };

   useEffect(()=>{
       (async ()=>{
          await getItems();
       })()
   },[]);
});
а мне в ответ прилетает пустой массив
источник