我有一个本地.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 })
}
(我在执行此操作时会看到一些布局问题,并且会弃用很多关于其他生命周期方法的警告)
然后在尝试与Promise.all
联系时可能会做一些AsyncStorage
吗?
将本地.json
文件用作"boilerplate/template"
然后在本地存储修订版本的最佳方法是什么?
答案 0 :(得分:2)
导入捆绑的json是同步的(就像从js文件导入一样)。
你的构造函数没问题。
如果使用Redux,则可以导入json并将其用作reducer中的初始状态。然后,您可以使用redux-persist保留Redux状态。除非您的应用程序非常简单,否则强烈建议使用Redux。
否则,只要更新状态,您就可以将状态存储到AsyncStorage
,然后从AsyncStorage
中的componentDidMount
读取,并使用存储状态调用setState
用于初始化。
关于其他生命周期方法的许多警告将被弃用
这是RN 0.55.1中的错误,升级到> = 0.55.2来修复它。