react-amap
react-amap copied to clipboard
本地react版本导致的问题
本地项目的react版本是16.9.0,下载完这个安装包之后,项目启动不起来了,请问这个问题怎么解决啊
@Mickeygogo 你的问题我无法回答,没有任何信息,尝试更新一下
https://github.com/uiwjs/react-amap/blob/8b089e94b5bf40fea3f9c894402839710c970cfa/packages/circle-marker/package.json#L32-L35
更新我本地项目的react版本?
就是本来我的版本是17.0.2的版本,但是之后我将react版本降到16.9.0 后,项目就跑不起来了 爆:ENOENT: no such file or directory, open '@uiw/react-amap/node_modules/@uiw/react-amap-marker/esm/index.js'
@Mickeygogo 你这个是构建工具的问题吧 @uiw/react-amap
依赖的 @uiw/react-amap-marker
包文件不存在
@Mickeygogo 你可以降级到 @uiw/[email protected]
我仔细看了一下,本地的react版本必须16.14.0以上 才可以跑成功,麻烦更新一下文档,因为你们一个包中用到了react/jsx-runtime ,而这个只有react16.14以上才有
@Mickeygogo
- https://github.com/facebook/react/issues/20235
@Mickeygogo 嗯是的,16.14.0+
是没有问题的
https://codesandbox.io/s/react-amap-example-y0n6c-204-kcpp2?file=/src/App.js
https://github.com/uiwjs/react-amap/blob/610a770b36e6393a72d93910ecfaa7d06da1356e/packages/api-loader/package.json#L31-L34
:)
本地项目的react版本是16.9.0,下载完这个安装包之后,项目启动不起来了,请问这个问题怎么解决啊
我已经有解决办法了,我的版本跟你的一样,我选择打补丁的方式,让react的React.createElement来代替react/jsx-runtime的效果,具体而言就是
import React from 'react';
....
....
if (error) {
return React.createElement('div', { style: { color: 'red' } }, error.message);
} else if (loaded) {
return React.createElement(React.Fragment, null, children);
}
来代替
import { jsx as _jsx } from "react/jsx-runtime";
...
...
if (error) {
return /*#__PURE__*/_jsx("div", {
style: {
color: 'red'
},
children: error.message
});
} else if (loaded) {
return /*#__PURE__*/_jsx(Fragment, {
children: children
});
}
类似的,你以这种形式把其他用到react/jsx-runtime的改成这样,记得导入React!!
我使用@uiw/react-amap的版本是5.0.5,如果你无法升级react大于17的话,可以使用我的补丁: patches.zip 文件里的@uiw+react-amap-polygon+5.0.5不要使用