Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React Native:导入本地.json异步吗?_Javascript_Reactjs_React Native_Ecmascript 6 - Fatal编程技术网

Javascript React Native:导入本地.json异步吗?

Javascript React Native:导入本地.json异步吗?,javascript,reactjs,react-native,ecmascript-6,Javascript,Reactjs,React Native,Ecmascript 6,我有一个本地.json文件,我希望将其用作我的状态的起点。然后我计划将状态存储在AsyncStorage中。但我担心的是导入是异步的,我会遇到一些冲突 这就是我目前正在做的 import { data } from './src/data.json' export default class App extends React.Component { constructor(props) { super(props) this.state = { data,

我有一个本地
.json
文件,我希望将其用作我的状态的起点。然后我计划将状态存储在
AsyncStorage
中。但我担心的是导入是异步的,我会遇到一些冲突

这就是我目前正在做的

import { data } from './src/data.json'

export default class App extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      data,
    }

    this.updatePitch = this.updatePitch.bind(this)
  }
...
}
但我应该这样做吗

  async componentDidMount() {
    await this.setState({ data })
  }
(我在执行此操作时看到一些布局问题,许多关于其他生命周期方法的警告将被弃用)

然后,在尝试将其与
异步存储连接时,可能会执行一些
承诺


使用本地
.json
文件作为
“样板/模板”
,然后在本地存储修订版本的最佳方法是什么?

导入捆绑的json是同步的(就像从js文件导入一样)

你的构造函数很好

如果使用Redux,则可以导入json并将其用作reducer中的初始状态。然后,您可以将Redux状态持久化为。除非你的应用程序非常简单,否则强烈推荐Redux

否则,只要在更新时将状态存储到
AsyncStorage
,并从
componentDidMount
中的
AsyncStorage
读取,然后调用
setState
,并使用存储的状态进行初始化

许多关于其他生命周期方法的警告将被弃用


这是RN 0.55.1中的一个错误,请升级到>=0.55.2以修复它。

非常感谢您的回答。我不太喜欢
redux
,所以在调用
setState
后,我会继续存储它。