渲染的数据量多就会报错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](https://private-user-images.githubusercontent.com/22857964/339325140-0c548a23-069c-4abe-a15a-b4d43144158c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI0MzE5ODgsIm5iZiI6MTcyMjQzMTY4OCwicGF0aCI6Ii8yMjg1Nzk2NC8zMzkzMjUxNDAtMGM1NDhhMjMtMDY5Yy00YWJlLWExNWEtYjRkNDMxNDQxNThjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MzElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzMxVDEzMTQ0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU0MzVlM2M2ZDQ2ZWVmOTVhM2Y2YjFlYjUzYmZlMzMwMjc1MTY2OWIxMTkzOTIwYzNmMmE1ZTA0ZjgxMTA2YzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.GsWDh2S4lx8QJjoTX4ZGhOUCdrJzZl5aDTpOGverjrs)
期望的结果
不报错
当前使用的版本
不要贴 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](https://private-user-images.githubusercontent.com/22857964/339325820-242c6854-a749-4c65-a26e-47e24967b115.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI0MzE5ODgsIm5iZiI6MTcyMjQzMTY4OCwicGF0aCI6Ii8yMjg1Nzk2NC8zMzkzMjU4MjAtMjQyYzY4NTQtYTc0OS00YzY1LWEyNmUtNDdlMjQ5NjdiMTE1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MzElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzMxVDEzMTQ0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ0NjcyMTZhY2I1YjFjMzJlMzk1NTNlOTI5MDI4NGJlZTY5NTI2ZGJjMjVlYTM5YWFjOGE4MGU0OTNjOTlkNWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ErgOaXaY0sQdnV7QntdQO67UQf-VG9qerrvPNEo1pcI)
业务代码的错误没有复现无法定位,可以自行打console.log来debug
业务代码的错误没有复现无法定位,可以自行打console.log来debug
尝试过了, fetch都是正常过, render渲染也是正常, 就是报错, 然后js打包失败好像, 浏览器访问不了js
而且我注释了commomState这个state, 他会接着报错其他的一个state
框架内部的useStore是不是不能在子组件多次调用
我把state全部放在render处统一去拿就不会报错
在子组件里多次调用, 且state数据量大的情况就会报错
能否尝试用默认的example给一个最简复现
我晚点看看怎么最小复现项目, 有可能就是我使用的哪里有问题
排查到是当前返回的请求size超过了默认的stream请求限制,可以在调用render方法时修改为返回string类型的结果,或者下个版本提供参数可以设置默认的stream缓冲区大小
plugin-react>=6.2.78支持config.streamHighWaterMark参考最新文档
好的, 谢谢啦
还有, 我能问一下您是如何排查问题的吗, 根据这个问题报错其实我联想不到node stream流缓存大小的问题
通过 curl 命令检测到返回的 html 内容被截断来控制变量排除原因
通过 curl 命令检测到返回的 html 内容被截断来控制变量排除原因
好的, 感谢