Slate编辑器出现TypeError: Object(...) is not a function错误的解决求助
Slate编辑器出现TypeError: Object(...) is not a function错误的解决求助
各位好,我目前在项目中使用Slate文本编辑器,但遇到了一个棘手的错误:
TypeError: Object(...) is not a function
报错的代码来自Slate包中的这一行:
return isPlainObject(value) && typeof value.text === 'string';
这里用到的isPlainObject函数来自is-plain-object库。我梳理了项目中这个库的依赖树,具体情况如下:
+-- @svgr/webpack@4.3.3 | `-- @svgr/plugin-svgo@4.3.1 | `-- merge-deep@3.0.3 | `-- clone-deep@0.2.4 | `-- is-plain-object@2.0.4 +-- sass-loader@7.3.1 | `-- clone-deep@4.0.1 | `-- is-plain-object@2.0.4 +-- slate@0.93.0 | `-- is-plain-object@5.0.0 +-- slate-history@0.93.0 | `-- is-plain-object@5.0.0 deduped +-- slate-react@0.93.0 | `-- is-plain-object@5.0.0 deduped `-- webpack@4.47.0 `-- micromatch@3.1.10 +-- extend-shallow@3.0.2 | `-- is-extendable@1.0.1 | `-- is-plain-object@2.0.4 `-- snapdragon@0.8.2 `-- base@0.11.2 +-- cache-base@1.0.1 | `-- set-value@2.0.1 | `-- is-plain-object@2.0.4 `-- mixin-deep@1.3.2 `-- is-extendable@1.0.1 `-- is-plain-object@2.0.4
我注意到一个关键的版本差异:is-plain-object@2.0.4采用的是默认导出,而@5.0.0版本改成了命名导出。我猜测这可能就是导致错误的根本原因——Slate在调用isPlainObject的时候,可能因为项目里同时存在两个版本的库,导致导入的不是正确的函数对象,从而触发了这个类型错误。
不过我不太确定为什么这种版本冲突会引发这样的问题,也不知道该如何有效解决。会不会是Babel或者Webpack的配置有问题,导致模块解析的时候出现了混淆?有没有有经验的大佬能给我一些指导或者解决方案?
内容来源于stack exchange
相关产品推荐
相关产品推荐

