如何在AsyncStorage React Native中保存项目数组?

时间:2018-05-08 22:54:27

标签: javascript reactjs react-native

我想要的是一个书签列表,但我不知道如何在AsyncStorage中保存一系列项目,我的技能是基本的反应。

当我按下按钮"保存到书签"。

时,我只需要保存帖子的功能(发布图片,标题和ID)。
export default class PostDetails extends Component {

constructor(props) {
   super(props);
   const {params} = props.navigation.state;
   this.state = {
     item: params.item
   };
}

render() {

   const {item} = this.state;  

   return (

   <Image source={{uri: item.post_image}}/>

   <Text> {item.post_id} </Text>
   <Text> {item.post_title} </Text>

   <Button>
      <Text> Save to Bookmark </Text>
   </Button>

    );
  }
}

1 个答案:

答案 0 :(得分:4)

我想你想用JSON.stringify(arrayToSave);请参阅JSON.stringify() AsyncStorage。它会将数组转换为可以保存到const saveBookmarks = async (bookmarksArray) => { try { const bookmarksString = JSON.stringify(bookmarksArray); await AsyncStorage.setItem('@MyStore:bookmarks',bookmarksString); } catch (error) { // Error saving data } }; <Button onClick={() => saveBookmarks(yourArray)} /> 的JSON字符串,然后可以在以后检索。

const theSavedArray = JSON.parse(stringFromAsyncStorage)

要检索它,您可以使用JSON.parse(); try { const bookmarksString = await AsyncStorage.getItem('@MyStore:bookmarks'); if (bookmarksString !== null){ // We have data!! const bookmarksArray = JSON.parse(bookmarksString); } } catch (error) { // Error retrieving data }

docs
{{1}}