Size: a a a

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

2020 January 29

NP

Nikita Pohvishev in React Native — русскоговорящее сообщество
Nikita Pohvishev
Друзья, помогите, пожалуйста. При переходах react-navigation отрабатывает нормально, но если перехожу из вложенного экрана на одну и ту же ссылку второй раз подряд, в айос экран не обновляется. Если экран не вложенный, а с панели навигации, например, то все норм.
Мне все еще нужна помощь ( Как удалось выяснить сам навигатор отрабатывает нормально (эвенты на навигацию отрабатывают). В чем собственно проблема, после повторной навигации не исчезает экран с которого перехожу, не отрабатывают жизненные циклы экрана на который перехожу, то есть картинка не меняется. Но если ткнуть куда-нибудь, где должна быть кнопка, то экран "проявится" и кнопка отработает. Проблема только на ios. Куда посоветуете копать? )
источник

NP

Nikita Pohvishev in React Native — русскоговорящее сообщество
Nikita Polevoy
Всем привет!
Как такое может быть:
 console.log(initial);
 //some object
 const [selected, setSelected] = useState(initial);
 console.log(selected); //{}
как вариант useState не отрабатывает прямо здесь, он ждет удобного случая для оптимизации, но тогда selected был бы undefined. Он ниже нигде не переопределяется?
источник

AV

Anton Vlasov in React Native — русскоговорящее сообщество
Nikita Pohvishev
Друзья, помогите, пожалуйста. При переходах react-navigation отрабатывает нормально, но если перехожу из вложенного экрана на одну и ту же ссылку второй раз подряд, в айос экран не обновляется. Если экран не вложенный, а с панели навигации, например, то все норм.
Возможно дёргаются разные методы. Почитай доку, есть разница между navigate и push которая похожа на то, что ты описываешь
источник

NP

Nikita Polevoy in React Native — русскоговорящее сообщество
Nikita Pohvishev
как вариант useState не отрабатывает прямо здесь, он ждет удобного случая для оптимизации, но тогда selected был бы undefined. Он ниже нигде не переопределяется?
Неа( дальше просто идёт return
источник

AV

Anton Vlasov in React Native — русскоговорящее сообщество
Nikita Polevoy
Неа( дальше просто идёт return
Скинь полностью код компонента
источник

NP

Nikita Polevoy in React Native — русскоговорящее сообщество
export const useSelectManyControls = initial => {
 console.log(initial);
 const [selected, setSelected] = useState(initial);
 console.log(selected);
 const IN = Object.keys(selected).filter(k => selected[k]);
 //console.log(selected);
 return { selected, setSelected, IN };
};
источник

NP

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

NP

Nikita Polevoy in React Native — русскоговорящее сообщество
у меня тут вообще макаронная логика другого кодера над которой я страдаю)
источник

NP

Nikita Polevoy in React Native — русскоговорящее сообщество
в тупик ставит только то что selected не принимает значения initial...
источник

AV

Anton Vlasov in React Native — русскоговорящее сообщество
Nikita Polevoy
export const useSelectManyControls = initial => {
 console.log(initial);
 const [selected, setSelected] = useState(initial);
 console.log(selected);
 const IN = Object.keys(selected).filter(k => selected[k]);
 //console.log(selected);
 return { selected, setSelected, IN };
};
источник

AV

Anton Vlasov in React Native — русскоговорящее сообщество
первое логирование печатает объект
и во время второго логгирования печатается тот же объект
скорее всего где-то внутри у тебя initial меняется
источник

NP

Nikita Polevoy in React Native — русскоговорящее сообщество
угу... буду искать
источник

NP

Nikita Polevoy in React Native — русскоговорящее сообщество
спасибо
источник

BS

Bogdan Shelomanov in React Native — русскоговорящее сообщество
Nikita Polevoy
export const useSelectManyControls = initial => {
 console.log(initial);
 const [selected, setSelected] = useState(initial);
 console.log(selected);
 const IN = Object.keys(selected).filter(k => selected[k]);
 //console.log(selected);
 return { selected, setSelected, IN };
};
не нужно передавать пропсы в состояние, в доке вроде описывали почему
источник

J

Jasur in React Native — русскоговорящее сообщество
Всем привет. Делаю post запрос. О чем говорить это ошибка
источник

BS

Bogdan Shelomanov in React Native — русскоговорящее сообщество
и писать не
setCount(count + 1);

setCount(state => state + 1);

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

SR

Steve Rogers in React Native — русскоговорящее сообщество
Jasur
Всем привет. Делаю post запрос. О чем говорить это ошибка
Ну если бэк писали не идиоты, то статус 422 ошибка валидации
источник

SR

Steve Rogers in React Native — русскоговорящее сообщество
Jasur
Всем привет. Делаю post запрос. О чем говорить это ошибка
Чего то не хватает в параметрах либо не верный тип данных
источник

J

Jasur in React Native — русскоговорящее сообщество
Понял спасибо
источник

I

Irakliy in React Native — русскоговорящее сообщество
NoName
Всем привет. Использую Expo. Пытаюсь открыть файл с помощью Linking.openURL. Файл открываю который скачал по ссылке с помощью FileSystem.downloadAsync. Файл лежит в FileSystem.documentDirectory.
И собственно при попытке открыть файл через Linking.openURL валится ошибка, с сообщение о том что нельзя открывать внутренний файл через внешнее приложение.
Как и куда сохранять файл, что бы его можно было открыть через какоенибудь встроенное приложение?
Lunking, вроде, для открытия ссылок или приложений, которые могут эти ссылки обработать, а не файлов.
источник