子应用动态挂载子app时会出现destroy 不是一个function
Emma-Alpha opened this issue · comments
Describe the bug
子应用动态挂载子app时会出现destroy 不是一个function
Uncaught TypeError: destroy is not a function
at safelyCallDestroy (react-dom.development.js:22927:5)
at commitHookEffectListUnmount (react-dom.development.js:23095:11)
at commitPassiveUnmountInsideDeletedTreeOnFiber (react-dom.development.js:25096:11)
at commitPassiveUnmountEffectsInsideOfDeletedTree_begin (react-dom.development.js:25043:5)
at commitPassiveUnmountEffects_begin (react-dom.development.js:24951:11)
at commitPassiveUnmountEffects (react-dom.development.js:24936:3)
at flushPassiveEffectsImpl (react-dom.development.js:27033:3)
at flushPassiveEffects (react-dom.development.js:26979:14)
at commitRootImpl (react-dom.development.js:26930:5)
at commitRoot (react-dom.development.js:26677:5)
Reproduction
https://stackblitz.com/edit/garfish-demo-xe7dqh?file=main/src/index.js
Used Package Manager
npm
System Info
System:
OS: Linux 5.0 undefined
CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Memory: 0 Bytes / 0 Bytes
Shell: 1.0 - /bin/jsh
Binaries:
Node: 16.14.2 - /usr/local/bin/node
Yarn: 1.22.19 - /usr/local/bin/yarn
npm: 7.17.0 - /usr/local/bin/npm
Validations
- Read the docs.
- Read the common issues list.
- Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- Make sure this is a Garfish issue and not a framework-specific issue.
- The provided reproduction is a minimal reproducible example of the bug.
我这边无法打开你的 ide,你可以尝试在 provider 下面添加这段代码吗
if (window.__GARFISH__ && typeof __GARFISH_EXPORTS__ !== 'undefined') {
// eslint-disable-next-line no-undef
__GARFISH_EXPORTS__.provider = provider;
}
我这边无法打开你的ide,你可以试试在provider下面添加这段代码吗
if (window.__GARFISH__ && typeof __GARFISH_EXPORTS__ !== 'undefined') { // eslint-disable-next-line no-undef __GARFISH_EXPORTS__.provider = provider; }
我更新了代码仓库地址了,麻烦大佬看看?
可以把你的代码 clone 到 github 仓库,给我一个仓库的地址吗,stackblitz 在多仓库时经常有 bug
嗯嗯,我复制到github上,稍等
可以把你的代码 clone 到 github 仓库,给我一个仓库的地址吗,stackblitz 在多仓库时经常有 bug
大佬,代码放到这个仓库里面了 https://github.com/Emma-Alpha/garfish_demo
@Emma-Alpha 我在本地 clone 运行了看着是正常的呢,你在本地运行过吗
我来看看
是的,我看到了React提示出来的警告,因此我更改成了新的写法。只不过出现了新的错误。
你按照右边这种写法 有什么问题吗,我理解这不是garfish 的问题,useEffect 里面 async 你这种用法就是有问题的
是的,我看到了React提示出来的警告,因此我更改成了新的写法。只不过出现了新的错误。
什么错误呢
我们更新下 demo 哈
是否需要我这边提供完整的webpack config?
是的,通过webpack编译之后就出现了
demo 打包后能复现吗
provider 为 null 参考下这个问题:https://www.garfishjs.org/issues/#provider-is-null . 我看了你的 webpack 配置没有问题,dev 下我这边没复现过。一般来说打包后 和 dev 表现是一样的,所以这边你看下能不能 dev 如果你能复现的话提供下复现环境。其他的除了上面说的那个问题外,我没发现其它的问题哈。
我看了你的 webpack 配置没有问题,dev 下我这边没复现过。一般来说打包后 和 dev 表现是一样的,所以这边你看下能不能 dev 如果你能复现的话提供下复现环境。其他的除了上面说的那个问题外,我没发现其它的问题哈。
打包后,配置dist比较麻烦。。稍等,我看看怎么弄。
我看了你的 webpack 配置没有问题,dev 下我这边没复现过。一般来说打包后 和 dev 表现是一样的,所以这边你看下能不能 dev 如果你能复现的话提供下复现环境。其他的除了上面说的那个问题外,我没发现其它的问题哈。
打包后,配置dist比较麻烦。。稍等,我看看怎么弄。
嗯嗯好的,你复现了可以推下代码我这边拉下来看下
我这边 serve dist 下面的目录也不会复现哦
嗯,我这边迁移一下线上使用的webpack config 看看先,我刚刚配置了一下本地简单的demo 确实是没有出现
建议优先检查下线上配置,目前还没有碰到过本地表现和生产环境不一致的情况。配置可以参考这里 https://www.garfishjs.org/issues/#provider-is-null
感谢大佬,我找到原因了。。(线上的 node_modules 和 yarn 环境有毒,我清空缓存就OK了)