Похоже, что возможен доступ к AsyncStorage
из Android (родной); но я все еще изо всех сил пытаюсь заставить эту работу.
В моем приложении React Native у меня есть что-то вроде:
Магазин
const config = {
...
}
export const reducers = {
...
user: user
}
let rootReducer = combineReducers(reducers)
let reducer = persistReducer(config, rootReducer)
User Reducer
export class Actions {
...
}
const initialState = {
first_name: : null,
last_name: : null,
email: null,
addresses: [
{ ... }
]
}
}
}
export const reducer = (state = initialState, action) => {
switch (action.type) {
...
}
}
Получение пользователя из магазина
const user = store.getState().user
console.log(user.first_name) // Steve
...
Теперь проблема начинается, когда я пытаюсь получить того же пользователя с Android, из всех моих неудачных попыток это то, что у меня есть:
try {
readableDatabase = ReactDatabaseSupplier.getInstance(getReactApplicationContext()).getReadableDatabase();
catalystLocalStorage = readableDatabase.query("catalystLocalStorage", new String[]{"value"}, "key = ?", new String[] { "full_name" }, null, null, null);
String[] names = catalystLocalStorage.getColumnNames();
if (catalystLocalStorage.moveToFirst()) {
final String value = catalystLocalStorage.getString(catalystLocalStorage.getColumnIndex("value"));
Log.d(TAG, value);
}
} finally {
if (catalystLocalStorage != null) {
catalystLocalStorage.close();
}
if (readableDatabase != null) {
readableDatabase.close();
}
}
Поскольку User это объект, я не знаю, правильный ли это способ получить 'first_name'
, я пытался получить 'user'
, но не сработало.
Я начинаю думать, что мне следует использовать response-native-sqlite-storage где я мог бы узнать свою структуру данных, но я не знаю, смогу ли я получить доступ к этой базе данных на Android.
PS: Мне нужен доступ AsyncStorage
, а не SharedPreferences
Версии Lib
react-native: 0.48.4
redux: 3.7.2
redux-persist: 5.4.0
Некоторые вопросы, которые не помогли