Я делаю подтверждение концепции в React Native.Моя идея состоит в том, чтобы сохранить небольшой объем данных с помощью AsyncStorage, но они не сохраняются после закрытия и открытия приложения.Данные сохраняются, если я не закрываю приложение.
Я сохраняю значения в редукторе, это мой код:
const initialState = {
data: [],
fetching: false
};
const todoReducer = (state = initialState, action) => {
console.log('action', action);
console.log('state', state);
let copied = Object.assign({}, state);
switch (action.type){
case ADD_TODO:
copied.data.push({ready: false, text: action.payload});
break;
case CHECK_TODO:
copied.data[action.payload].ready = true;
break;
case REMOVE_TODO:
copied.data.splice(action.payload, 1);
break;
case GETTING_DATA:
copied.fetching = true;
break;
case SET_STORE:
console.log('action.payload', action.payload);
copied.data = action.payload;
copied.fetching = false;
break;
default:
break;
}
AsyncStorage.setItem(STORAGE_TODO_KEY, JSON.stringify(copied.data));
return copied;
};
У меня также есть кнопка, которая ищет информацию (не сразу после сохранения) и находится в образце в текстовом формате, это код
<Content>
<Text>{this.state.value}</Text>
<Button rounded style={{width: '100%', marginTop: 10}}
onPress={async ()=> {
try {
const value = await AsyncStorage.getItem(STORAGE_TODO_KEY);
if (value !== null) {
// We have data!!
console.log(value);
this.setState({value})
}else{
console.log('No hay data :c');
this.setState({value: 'No hay data :c'})
}
} catch (error) {
// Error retrieving data
console.log('Error', error);
this.setState({value: error})
}
}}>
<Text style={{textAlign: 'center', width: '100%'}}>Mostar lo guardado</Text>
</Button>
{this.props.todos.fetching && <Text>Cargando Lista de quehaceres...</Text>}
{
this.props.todos.data.length > 0 ?
this.renderTodoList()
: null
}
</Content>
В момент запуска приложения, сохранения данных и нажатия кнопки отображается информация, то есть онавосстанавливается из AsyncStorage, но после закрытия приложения оно не возвращает данные