React native Vue本机:试图分配给只读属性

React native Vue本机:试图分配给只读属性,react-native,vue.js,vuex,asyncstorage,React Native,Vue.js,Vuex,Asyncstorage,对于那些不知道的人-Vue Native是React Native的包装器。您可以使用VueJS框架编写React本机应用程序 问题是: 我试图使用AsyncStorage存储api列表,但遇到一个错误“试图分配给只读属性” api列表如下所示: apiList: [ {name: "api1", url: "https://example_url1"}, {name: "api2", url: "https://example_url2"}, ] 用户可以向列表中添加API

对于那些不知道的人-Vue Native是React Native的包装器。您可以使用VueJS框架编写React本机应用程序

问题是: 我试图使用AsyncStorage存储api列表,但遇到一个错误“试图分配给只读属性”

api列表如下所示:

apiList: [
    {name: "api1", url: "https://example_url1"}, 
    {name: "api2", url: "https://example_url2"},
]
用户可以向列表中添加API。这是使用VueX操作完成的。 如果api不在列表中,则会添加(推送)


添加AsyncStorage片段时出错。我是个新手,不知道自己做错了什么。

这是我的疏忽。国家:

简单地说,只能使用AsyncStorage存储字符串。 这个问题在过去和现在都得到了解决

解决方案很简单:

AsyncStorage.removeItem('APIs').then(() => {
    AsyncStorage.setItem('APIs', JSON.stringify(context.state.apiList));
});

由于它是只读的,我的第一个想法是解决方案不是强制在这个上存储,因为它是只读的,但是我需要改变的是你的算法/模式?但是为什么它是只读的?你能详细解释一下吗?我很高兴你明白了。我以前从未试过这个。我只能说你做得不对。如果某些内容是只读的,那么问题永远不会出现。
static setItem(key: string, value: string, [callback]: ?(error: ?Error) => void)
AsyncStorage.removeItem('APIs').then(() => {
    AsyncStorage.setItem('APIs', JSON.stringify(context.state.apiList));
});