在本机反应中写入/编辑/覆盖一个json文件

Posted

技术标签:

【中文标题】在本机反应中写入/编辑/覆盖一个json文件【英文标题】:write/edit/overwrite a json file in react native 【发布时间】:2016-10-06 22:19:02 【问题描述】:

我知道如何通过导入来读取 json 文件

import file from './config/data.json'; console.log(file);

但是有没有一种简单的方法来编写或编辑它。

【问题讨论】:

【参考方案1】:

如果你绝对想读/写文件,你可以使用react-native-fs。

如果您想保留应用程序特定的设置,我建议您使用AsyncStorage。

【讨论】:

【参考方案2】:

使用 AsyncStorage 保存本地设置:

以下是在你的代码中设置你的设置(这个例子是针对一些Switch的

async setSettings() 
  try 
    var obj = ;
    var settings = await AsyncStorage.getItem('settings');
    settings = JSON.parse(result);
    Object.assign(obj, settings);
    this.setState(obj);
  
  catch(e)  
  finally  

以下是在你的代码中更改设置

switchChanged(field, value) 
  var obj = ;
  obj[field] = value;
  AsyncStorage.getItem('settings').then(function(strResult) 
    var result = JSON.parse(strResult) || ;
    Object.assign(result, obj);
    AsyncStorage.setItem('settings', JSON.stringify(result));
  );
  this.setState(obj);

最后是渲染方法的调用

<Switch
  onValueChange=(value) => this.switchChanged('reminders', value)
  value=this.state.reminders />

希望对你有帮助:)

【讨论】:

以上是关于在本机反应中写入/编辑/覆盖一个json文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在本机反应中从 json 获取数据?

通过 json 数据反应原生动态主题

是否可以在本机反应中绘制状态栏?

将反应应用程序与反应本机应用程序合并

mysql数据需要写入json文件

如何在本机反应中解析json数据