zhangyuang / ssr

A most advanced ssr framework support React17/React18/Vue2/Vue3 on Earth that implemented serverless-side render specification.

Home Page:http://doc.ssr-fc.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

渲染的数据量多就会报错state undefined的情况

xiaokyo opened this issue · comments

提问前请确认以下几点信息,否则你的问题将不会被解答

  • 参考 https://zhuanlan.zhihu.com/p/25795393 学会正确的提问方式
  • 确定已经阅读过文档 http://doc.ssr-fc.com/ 并且文档中搜索不到相关答案
  • 对应服务端框架的使用问题请去它们的官方文档找答案。例如 Midway, Nest.js
  • 如果你确认当前是一个 bug 请给最简复现仓库。只有一张图或者信息不足的问题将会被直接关闭
  • 原则上这里只解答与本框架有关的问题。关于其他问题例如 Node.js 怎么连 Mysql 怎么获取 cookie 这种基础问题你应该去 Google 找答案而不是在这里。

详细描述你的问题

组件CommentRow是路由首页的一个组件, 访问首页时, new Array(3), 3以下不会有报错, 渲染的jsx多了, 就会报如下错误, 定位不到问题, 来问问有没有碰到类似问题

image

期望的结果

不报错

当前使用的版本

不要贴 package.json 用 yarn list "ssr*" 来查看版本。同时建议熟读semver 规则并且知道怎么安装最新依赖!
├─ ssr-common-utils@6.2.130
├─ ssr-core@6.2.29
├─ ssr-deepclone@1.0.1
├─ ssr-hoc-react@6.2.11
├─ ssr-mini-css-extract-plugin@1.6.3
├─ ssr-plugin-midway@6.2.23
├─ ssr-plugin-react@6.2.77
│ └─ ssri@7.1.1
├─ ssr-serialize-javascript@6.0.4
├─ ssr-types@6.2.55
├─ ssr-vite-plugin-style-import@2.0.1
├─ ssr-webpack@6.2.16
├─ ssr-webpack4@4.46.2
├─ ssr-window@3.0.0
├─ ssr@6.2.71
└─ ssri@6.0.2

复现仓库地址

暂时没仓库

你本人对问题可能的原因判断(如果你能大概判断的话)

应该是哪块state未使用正确, 用的是valtio状态管理
react + midwayjs

image

业务代码的错误没有复现无法定位,可以自行打console.log来debug

业务代码的错误没有复现无法定位,可以自行打console.log来debug

尝试过了, fetch都是正常过, render渲染也是正常, 就是报错, 然后js打包失败好像, 浏览器访问不了js
而且我注释了commomState这个state, 他会接着报错其他的一个state

框架内部的useStore是不是不能在子组件多次调用

我把state全部放在render处统一去拿就不会报错
在子组件里多次调用, 且state数据量大的情况就会报错

能否尝试用默认的example给一个最简复现

我晚点看看怎么最小复现项目, 有可能就是我使用的哪里有问题

ykfe-midway-react.zip

能否尝试用默认的example给一个最简复现

用的官方例子复现的, 访问首页时node会报错, 有空的时候可以帮忙看看

排查到是当前返回的请求size超过了默认的stream请求限制,可以在调用render方法时修改为返回string类型的结果,或者下个版本提供参数可以设置默认的stream缓冲区大小

plugin-react>=6.2.78支持config.streamHighWaterMark参考最新文档

好的, 谢谢啦

还有, 我能问一下您是如何排查问题的吗, 根据这个问题报错其实我联想不到node stream流缓存大小的问题

通过 curl 命令检测到返回的 html 内容被截断来控制变量排除原因

通过 curl 命令检测到返回的 html 内容被截断来控制变量排除原因

好的, 感谢