Tengo este código de los documentos de almacenamiento asíncrono . Sin embargo, esto solo funciona para establecer el estado de los valores de cadena. ¿Cómo puedo hacer con una matriz de objetos?
export default function App() { const [value, setValue] = useState('value'); const { getItem, setItem } = useAsyncStorage('@storage_key'); const readItemFromStorage = async () => { const item = await getItem(); setValue(item); }; const writeItemToStorage = async newValue => { await setItem(newValue); setValue(newValue); }; useEffect(() => { readItemFromStorage(); }, []); return ( <View style={{ margin: 40 }}> <Text>Current value: {value}</Text> <TouchableOpacity onPress={() => writeItemToStorage( Math.random() .toString(36) .substr(2, 5) ) } > <Text>Update value</Text> </TouchableOpacity> </View> ); }Los documentos de uso mencionan que solo se pueden almacenar datos de string .
Consulte https://react-native-async-storage.github.io/async-storage/docs/usage
Para almacenar un Object o Array , deberá serializarlo con JSON.stringify(myObj) antes de escribirlo en el almacenamiento y deserializarlo con JSON.parse(myObj) inmediatamente después de leerlo desde el almacenamiento.
Puede usar JSON.parse(retrievedItemFromStorage) para analizarlo en un Array/Object