react-moralis 0.2.6报Moralis.start不是函数,0.2.3版本正常如何解决?
报错原因
react-moralis在0.2.4及之后的版本对依赖逻辑做了不兼容调整,直接从0.2.3升级到0.2.6会触发该问题:
- 0.2.3版本内置了完整的Moralis核心包,内部可直接调用
Moralis.start完成初始化 - 0.2.4及之后的版本将Moralis核心包改为peer依赖,不再内置打包,同时要求显式将Moralis实例传入
MoralisProvider,旧版内部自动加载的Moralis对象变为空值,调用start方法自然会抛出类型错误
解决步骤
- 第一步:安装对应版本的Moralis核心包,react-moralis 0.2.6仅兼容1.x版本的Moralis,不要安装2.x大版本:
# npm 安装 npm install moralis@1.11.0 # yarn 安装 yarn add moralis@1.11.0
- 第二步:修改项目入口的
MoralisProvider配置,显式传入安装的Moralis实例:
原入口代码(示例):
import { MoralisProvider } from "react-moralis"; ReactDOM.render( <MoralisProvider appId="你的应用ID" serverUrl="你的服务地址"> <App /> </MoralisProvider>, document.getElementById("root") );
修改后:
import Moralis from "moralis"; import { MoralisProvider } from "react-moralis"; ReactDOM.render( <MoralisProvider appId="你的应用ID" serverUrl="你的服务地址" moralis={Moralis} > <App /> </MoralisProvider>, document.getElementById("root") );
- 第三步:检查项目中所有自定义导入Moralis的逻辑,所有Moralis相关的导入统一从
moralis包引入,不要再从react-moralis包内导入Moralis实例。
完成以上操作后重启项目即可解决报错。
内容的提问来源于stack exchange,提问作者Patrick Collins
相关产品推荐
相关产品推荐

