Javascript 从ajax调用反应redux存储状态

Javascript 从ajax调用反应redux存储状态,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我试图查找它并找到一些想法,主要是:normalizer-> 但我有一个问题: 我从ajax调用中获取数据,我是否应该从中创建类,比如:User对象、Post对象 即: 我可以像那样存储它,或者我可以创建易于使用的对象,然后存储在状态中 即: 我应该简单地获取json,并将其放在状态中 或 我将从json创建对象,然后将其存储在状态中,如下所示: let user = createUserFromJson(json); // User object returned dispatch({typ

我试图查找它并找到一些想法,主要是:normalizer->

但我有一个问题:

我从ajax调用中获取数据,我是否应该从中创建类,比如:User对象、Post对象

即:

我可以像那样存储它,或者我可以创建易于使用的对象,然后存储在状态中

即:

我应该简单地获取json,并将其放在状态中

我将从json创建对象,然后将其存储在状态中,如下所示:

let user = createUserFromJson(json); // User object returned

dispatch({type: ADD_USER, {user});

你能澄清你到底在问什么吗?您可以像在选项1中使用Json那样将ajax响应存储在状态中。不确定第二个示例是什么意思。谢谢@MartinMazzaDawson,更新问题,第二个选项是从json创建类对象,并将其存储在状态中。您不想将类存储在状态中,因为它们不可序列化。我也看不到选项二的好处,只是更多的代码,更容易访问属性不是更好吗?如果后端api发生变化,这意味着我需要重构关于如何访问我的状态的所有视图。ie:user.getFirstName()VS user.name.fnameAs@MartinMazzaDawson提到,您不希望存储不可序列化的对象(进位函数等)。关于规范化,这可能取决于API的“可靠性”,取决于它引入破坏性更改的频率,以及它与应用程序的耦合程度。如果您觉得按原样使用响应不够“安全”,请在获取实体时对其进行规范化,并将规范化版本存储在存储中。
class User {
    constructor(data) {
        this.id = data.id;
        this.name = data.name;
    }

    getName() {
        return this.name;
    }
}
let user = createUserFromJson(json); // User object returned

dispatch({type: ADD_USER, {user});