在运行Redux的教程之一时,我遇到了以下警告:“ Redux操作和状态应仅包含普通的JS值,例如对象,数组和基元。不要放置类实例,函数或其他不可序列化的值导入Redux!”
这是否意味着不应将类实例数组保存在redux中?例如,说我有一个聊天应用程序。假设我有一个Conversation类,其中包含参与者数组,消息数组,ID等。我可以在Redux中添加一系列Conversation实例吗?
如果没有,为什么? React应用程序的数据模型是否应该不太多依赖类和继承?
答案 0 :(得分:1)
从技术上来说是可能的,但是you should not add class instances to the Redux state!。
React和Redux都希望您为状态使用普通的JS对象,数组和基元-而不是类实例。 They also expect that you update that data immutably。
您的数据也一定不依赖继承。
答案 1 :(得分:-1)
普通JS值只是一个普通旧JavaScript对象(POJO):
var obj = {};// this is a POJO
var obj = new Object();// this is POJO
不是PJOJ的是这样的
var Obj = function(welcome_text) {
this.welcome_text = welcome_text;
}
var c = new Obj("Welllllcome!!!!");// this is not a POJO !
我关注了redux的文档,他们在此link中给出了一个示例。他们解释说,例如,您不能将new Date()
作为操作/状态的参数,因为新的Date()将返回非POJO!相反,您应该new Date().toISOString()
只能返回一个字符串。
因此,为了回答您的直接问题(我可以在Redux中添加一系列对话实例吗?)
是的,您可以。