Nikita
всем привет, кто то знает как с Экспо открыть загруженный файл?
гружу файл .docx через FileSystem.downloadAsync, получаю uri типо такого : file:///data/user/0/host.exp.exponent/files/ExperienceData/qweqwe/small.docx
а что с этим uri потом делать нифига не понятно ) как открыть файл блин?)
Jack
Jack
Ему скормишь uri
Jack
Он сам разберётся
Nick
Привет, коллеги вопрос: трекаются ли js-level exceptions когда юзаешь crashlytics, например https://rnfirebase.io имплементация ?
Никита
Никита
вот в таком виде приходит падения
Никита
но это именно падения прилки, просто в exceprion выбрасывается ошибка из js, минифицированного правда
Nick
Vladimir
Кто пользовался react-native-elements? Там есть ресайз размеров, например текстов под плашнеты, смартфоны?
Vladimir
Помню юзал react-native-base, на плашнетах их текта очень мелко смотрятся
Basil
Привет. Вопрос по AsyncStorage. Кто подскажет что я делаю не так? я сохраняю массив в сторе, но когда достаю его назад он возвращается в извращенной форме. Пример: Изначальная строка - [{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:05 AM"},{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:12 AM"}]. ГетАйтем возвращает вот такое: [{"_40":0,"_65":1,"_55":[{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:05 AM"}],"_72":null},{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:12 AM"}]. Что я делаю не так?
Alexsandr
Привет. Вопрос по AsyncStorage. Кто подскажет что я делаю не так? я сохраняю массив в сторе, но когда достаю его назад он возвращается в извращенной форме. Пример: Изначальная строка - [{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:05 AM"},{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:12 AM"}]. ГетАйтем возвращает вот такое: [{"_40":0,"_65":1,"_55":[{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:05 AM"}],"_72":null},{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:12 AM"}]. Что я делаю не так?
положи туда json
Alexsandr
а когда вытаскиваешь делай json.parse
Vladimir
кто-что делает что бы шрифты одинаково смотрелись на разных по величене дисплеях?
Basil
ну так я отправляю массив через джейсон стрингифай, а достаю через парс
Alexsandr
Alexsandr
как делаешь
Alexsandr
Alexsandr
Alexsandr
вот resizeText.js
Alexsandr
но это очень общая штука
Alexsandr
надо будет делать, под каждый случай индивидуально
Basil
const updateUserPlaces = (state, newData) => {
let updatedData = state.userPlaces.slice();
updatedData.push(newData);
saveToLocal(JSON.stringify(updatedData));
return updatedData;
};
Никита
Привет. Вопрос по AsyncStorage. Кто подскажет что я делаю не так? я сохраняю массив в сторе, но когда достаю его назад он возвращается в извращенной форме. Пример: Изначальная строка - [{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:05 AM"},{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:12 AM"}]. ГетАйтем возвращает вот такое: [{"_40":0,"_65":1,"_55":[{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:05 AM"}],"_72":null},{"tem":"1","humidity":94,"date":"12/27/2018","time":"9:21:12 AM"}]. Что я делаю не так?
тут промис сохраняется
Никита
на первый взгляд
Никита
или логается промис
Dmitry
Alexsandr
Dmitry
и лучше на гисте
Никита
вот это намекает на то что в AsyncStorage сохраняется промис
{"_40":0,"_65":1,"_55":
я бы предположил что там где делается setItem нужно сделать например setItem(await …) саму функцию соответственно сделать async
тупое решение не глядя в код
Dmitry
Тут скорее то, что updatedData уже с промисом
Basil
https://jsbin.com/kijofonaxa/1/edit?html,js,output
Basil
На гит еще не кидал
Basil
Это мой первый тест таск, и я методом тыка учусь
Alexsandr
const getStorageValue = async () => {
let value = await AsyncStorage.getItem("userData");
let retrivedValue = JSON.parse(value);
return retrivedValue;
};
Alexsandr
вот тут у тебя промис возращается
Alexsandr
так как ты его дергаешь в синхроной функции
Dmitry
вот это тот случай, когда использование синков неявно
Dmitry
ты можешь вызывать async как с await так и без
Vladimir
Alexsandr
Vladimir
Alexsandr
Alexsandr
почему?
import { isIphoneX } from "react-native-iphone-x-helper";
Vladimir
и?
Gena
какой ты злой)
Потому что я вижу сколько ошибок делают люди в этих async/await... промисы и так тема непростая, а тут это ещё и скрывается за код, который очень легко путается с обычным синхронным )
Gena
Alexsandr
и?
короче тебе проще свою тузлу под это заточить
Gena
Вот, кстати, на хабре есть про это, почитайте: https://habr.com/post/412081/
Alexsandr
Alexsandr
тем более, я на 100% уверен, что я младше вас) и нужно обходиться без сарказмов, сори за оффтоп)
Alexsandr
Dmitry
я уже писал, что реализация в js этих методов совсем неудачная, потому что нет жесткого контроля, как и где их использовать
Basil
А какие еще есть варианты сохранить инфу на девайсе?
Dmitry
Dmitry
в моем понимании нужно либо использовать Promise, либо async/await и тогда уже await вызывать только внутри async и не давать их вызывать без await и не внутри async
Dmitry
но тут вызывай откуда хочешь и как хочешь, а следовательно и отлаживай, как хочешь
Basil
Ну вот в том коде что я кинул на JS Bin. Есть какие нибудь мысли как сделать правильно. Там всего пара функций
Basil
?
Dmitry
Alexsandr
Dmitry
Никто внутри редьюсеров не получает данные снаружи
Dmitry
их диспатчить надо
Dmitry
case actionTypes.CHECK_USER_DATA: {
const data = getStorageValue();
return {
...state,
userPlaces: [data]
};
}
Dmitry
так быть не должно
Alexsandr
Basil
Это моя первая работа на реакт нейтив. Мне рекрутер написала типа мол нам нужен джун, на тебе тестовое. Я всю ночь писал епку и она уже готова. Осталось только вот ЭТО
Basil
...
Dmitry
интресный джун
Dmitry
в любом случае, это плохо. Тебе лучше почитать просто основы redux и как его применять.
Dmitry
А как решить твою проблему, я думал ты уже понял.. Избавься от асинков, или делай их везде
Basil
Да я редакс норм умею применять. Просто я писал епку на угад. Я не знал ничего о реакт нейтив до этого. Конечно если сейчас с нуля переписать то можно архитектуру нормально спланировать
Basil
просто времени нет
Dmitry