Vue Native:试图分配给只读 属性

Vue Native: attempted to assign to readonly property

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

问题: 我正在尝试使用 AsyncStorage 存储 api 列表,但出现错误 "attempted to assign to readonly property".

api 列表如下所示:

apiList: [
    {name: "api1", url: "https://example_url1"}, 
    {name: "api2", url: "https://example_url2"},
]

用户可以向列表中添加 API。这是使用 VueX 操作完成的。 如果 api 不在列表中,则添加(推送)。

[ADD_API](context, { name, url }) {
    let api = context.getters.getApiFromList(name);

    if (name && url && !api) {
        context.commit(APPEND_API_LIST, { name, url });

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

添加AsyncStorage片段时出现错误。我是 React Native 的新手,所以我不知道自己做错了什么。

这是我的疏忽。 docs 状态:

static setItem(key: string, value: string, [callback]: ?(error: ?Error) => void)

简单地说 - 使用 AsyncStorage 只能存储字符串。 此问题已在 here and .

之前解决

解决方法很简单:

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