zhangyuang / ssr

A most advanced ssr framework support React17/React18/Vue2/Vue3 on Earth that implemented serverless-side render specification.
http://doc.ssr-fc.com/
MIT License
2.59k stars 283 forks source link

[BUG] Vite模式下React路由切换报错 #136

Closed 295367131 closed 2 years ago

295367131 commented 2 years ago

该问题的重现步骤是什么?

  1. 按照官方案例:npm init ssr-app my-ssr-project --template=midway-react-ssr
  2. 安装依赖:cd my-ssr-project && yarn
  3. 安装Vite: yarn add vite @vitejs/plugin-react-refresh
  4. 启动:yarn start:vite
  5. 访问页面并点击任意链接跳转路由后报错

报错内容:TypeError: dispatch is not a function

Snipaste_2021-11-30_14-42-49

错误位置: https://github.com/zhangyuang/ssr/blob/e43ddd9d26391ffb0002c68b8216ce3ef4035c3f/packages/hoc-react/src/wrapComponent.tsx#L30

你期待的结果是什么?实际看到的又是什么?

期待:正常跳转页面 实际:控制台报错并且页面空白

你正在使用产品的哪个版本?在什么操作系统上?

MacOS: 11.2.3 Node: 14.18.1 Chrome: 96.0.4664.55

{
  "dependencies": {
    "@midwayjs/decorator": "^2.3.0",
    "@midwayjs/web": "^2.3.0",
    "@vitejs/plugin-react-refresh": "^1.3.6",
    "egg": "^2.0.0",
    "egg-scripts": "^2.10.0",
    "react": "^17.0.0",
    "react-dom": "^17.0.0",
    "react-router-dom": "^5.1.2",
    "ssr-core-react": "^5.0.0",
    "ssr-types-react": "^6.0.0",
    "swiper": "6.7.5",
    "vite": "^2.6.14"
  }
  "devDependencies": {
    "@midwayjs/egg-ts-helper": "^1.0.5",
    "@types/react": "^17.0.0",
    "@types/react-dom": "^17.0.0",
    "@types/react-router-dom": "^5.1.3",
    "cross-env": "^7.0.3",
    "eslint-config-standard-react-ts": "^1.0.5",
    "ssr": "^5.0.0",
    "ssr-plugin-midway": "^5.0.0",
    "ssr-plugin-react": "^6.0.0",
    "typescript": "^3.9.7"
  }
}

如果有的话,请在下面提供更多信息。

在Webpack模式下正常

zhangyuang commented 2 years ago

fix by ssr-plugin-react@6.1.8