Node.js事故ElysionTypeScriptRedux

每个人访问都是我的事故原因找到了

出问题的是这段代码

    const serverDefaultUserState = defaultUserState;
    if (this.req) {
      const serverUserData = this.req.serverUserData;
      console.log('===INIT_EPIC===: ', serverUserData);
      const serverToken = this.req.serverToken;
      if (serverUserData) {
        serverDefaultUserState.loggedIn = true;
        serverDefaultUserState.loginPending = false;
        serverDefaultUserState.userData = serverUserData;
        serverDefaultUserState.token = serverToken;
      }
    }

serverDefaultUserState 被赋予了 defaultUserState 的引用,其后又被修改了,导致 defaultUserState 被修改了。但是 node 模块是单例的,导致所有其他 redux 实例被初始化的时候都读取了被修改的数据……所以用户数据也被共享了。

为了避免同样的问题再出现,应该把 defaultUserState 的所有属性标记为 readonly,这样 TypeScript 就可以检查出是否存在对其的更改了。

Colliot4/25/2018, 11:02:49 PM


Preview:

Cancel

Elsewhere

sarasa replied to 关于每个人访问都是我的事故原因,我有个猜测

什么鬼什么鬼什么鬼什么鬼

sarasa replied to IntelliJ 系列的「逐驼峰部件」能不能应用到补全上?

别说了,CLion和Goland成天给你补全一堆shi出来。

Colliot replied to IntelliJ 系列的「逐驼峰部件」能不能应用到补全上?

我平时就是这么用的,但是这并不符合我提出的要求

ice1000 replied to IntelliJ 中按照驼峰移动光标的选项是啥来着?

File | Settings | Editor | General | Smart Keys 中的 `Use "CamelHump" words"

ice1000 replied to IntelliJ 系列的「逐驼峰部件」能不能应用到补全上?

image 虎哥你可能还要学习一个

Colliot replied to 如何输入公式中的微分算子?

看起来不错,还有什么推荐的吗?

Colliot replied to 关于每个人访问都是我的事故原因,我有个猜测

为什么西西叫Axurez,为什么我叫Colliot

Colliot replied to 关于每个人访问都是我的事故原因,我有个猜测

虎哥你懂吗,你懂你的身份吗

Colliot replied to 关于每个人访问都是我的事故原因,我有个猜测

为什么我依然可以使用虎哥的身份