React Native - 更新AsyncStorage项嵌套键值?

时间:2016-09-14 04:58:04

标签: react-native asyncstorage

我有一个用户通过AsyncStorage存储,如下所示:

// data has a few key/value pairs for the user object
AsyncStorage.setItem('user', JSON.stringify(data));

data中的一个键/值对是question_count,其值为10

当用户删除问题时,如何在question_count中将AsyncStorage值减1,以使其值为9

以下是我的尝试:

AsyncStorage.getItem('user').then(data => {
    data.question_count--;
});

但这不会改变价值。知道怎么做到这一点吗?

1 个答案:

答案 0 :(得分:15)

您应该在递减后再次保存该值。

AsyncStorage.getItem( 'user' )
    .then( data => {

      // the string value read from AsyncStorage has been assigned to data
      console.log( data );

      // transform it back to an object
      data = JSON.parse( data );
      console.log( data );

      // Decrement
      data.question_count--;
      console.log( data );

      //save the value to AsyncStorage again
      AsyncStorage.setItem( 'user', JSON.stringify( data ) );

    }).done();