我可以在Redux中存储一组类实例吗



在运行Redux的一个教程时,我遇到了以下警告:">Redux操作和状态应该只包含简单的JS值,如对象、数组和基元。不要将类实例、函数或其他不可序列化的值放入Redux";

这是否意味着类实例的数组不应该保存在redux中?例如,假设我有一个聊天应用程序。假设我有一个Conversation类,它包含一组参与者、一组消息、一个id等。我可以添加一组Conversation实例吗?

如果没有,为什么?React应用程序的数据模型应该不太依赖于类和继承吗?

从技术上讲可以做到这一点,但您应该不要将类实例添加到Redux状态

React和Redux都希望您使用纯JS对象、数组和基元作为状态实例,而不是类实例。他们还希望你能不受干扰地更新这些数据。

您的数据也应该明确而不是依赖于继承。

纯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的文档,他们在这个链接中给出了一个例子。他们解释说,例如,您不能将new Date()作为操作/状态的参数,因为新的Date((将返回非POJO!相反,您应该执行new Date().toISOString(),它将返回一个字符串。

因此,为了回答您的直接问题(我可以添加一组对话实例吗?(

是的,你可以

相关内容

  • 没有找到相关文章