我构建了react本地应用程序,我正在使用mobx。在存储区中,有一个名为tools的数组,当我试图将值赋值到数组时,就会得到数组。
遇到一个由反应或观察者组件引发的未察觉的异常,在:'ReactionReaction@1 Error: serializr这个值不是原始的: 14
class Task {
@persist @observable id = ''
@persist @observable title = ''
@persist @observable description = ''
@persist @observable tools = []
constructor(id,title,description,tools){
console.log('new task')
console.log(id,title,description,tools)
this.id = id
// this.title = title
this.description = description
this.tools = tools;
}TasksStore -在这里我创建了一个新的任务对象。
import { observable, action, computed } from 'mobx'
import { persist } from 'mobx-persist'
import Task from '../Task/Task'
class TasksStore {
@persist('list',Task) @observable tasks = []
@observable storeHydrated = false;
@action done(){
this.storeHydrated = true
}
@action addNewTask(task){
this.tasks.push(new Task(0,task.title,task.description,task.tools))
console.log('tasks is',this.tasks)
}
}
const taskStore = new TasksStore();
export default taskStore;当我移除
@persist @observable tools = []这个应用程序运行良好。
发布于 2018-07-25 06:29:56
@persist('list') @observable tools = [] 尝试设置工具的类型。看起来不错
发布于 2018-11-16 08:34:28
我有同样的problem.The解决方案,使Task类可以像这样序列化:
class Task {
@serializable @observable id = ''
@serializable @observable title = ''
@serializable @observable description = ''
@serializable(list(primitive())) @observable tools = []
constructor(id,title,description,tools){
console.log('new task')
console.log(id,title,description,tools)
this.id = id
// this.title = title
this.description = description
this.tools = tools;
}并将您现在可序列化的任务持久化到您的商店中:
class Store{
@persist('object', Task)
@observable
public Task= new Task()
}https://stackoverflow.com/questions/49711437
复制相似问题