【发布时间】:2019-09-02 18:11:00
【问题描述】:
错误
当在其他请求中间有对 NextJS 的请求时,上下文将在这些请求之间共享。
复制
这里是 repo,其中包含重现错误所需的代码:https://github.com/matigda/nextjs_issue
- 克隆回购
- 运行 npm install
- 运行 npm run dev
- 在两个单独的浏览器中打开http://localhost:3000(或者只打开一个
窗口处于私人模式)但在第一个窗口时打开第二个窗口
仍在加载。在那之前打开你的控制台
- 您可以 还设置 document.cookie = 'token=whatever you wish' (只是为了看看 结果在控制台)。如果您设置了 cookie - 刷新页面 你没有设置这个cookie,然后立即刷新 第二个窗口中的页面。
- 如果您没有设置 cookie,您只需 看到两个ID是一样的。如果您设置 cookie,您还将 请注意,AuthStore 中的令牌在两个页面上都是相同的,即使 其中一个页面上没有 cookie。所以基本上 - 如果请求 A 先运行然后中间出现request B,A request 从 B 请求接收数据。因此,如果您以另一种方式运行此测试( 这意味着您首先使用设置的 cookie 运行窗口,然后 没有cookie)你会看到之后没有设置令牌 页面已加载,即使 cookie 存在。
预期行为
嗯...我认为在这种情况下不希望在用户之间共享这些对象是很糟糕的。但我不确定这是否不仅仅是我的“withMobxStores”容器中的一个错误,所以请先看看那里。
如果可以理解,请告诉我 - 如果不能,我可以录制 GIF 以显示正在发生的事情。
【问题讨论】:
标签: javascript reactjs next.js mobx server-side-rendering