我正在尝试使用Shpjs包在传单地图上导入形状文件 基于 shpjs 文档:shpjs
这是我的代码:
const [geoData, setGeoData] = useState(null); //state
//onChange function
const onChangeFile = ({ target }) => {
var reader = new FileReader();
var file = target.files[0];
reader.readAsArrayBuffer(file);
reader.onload = function (buffer) {
setGeoData(buffer.target.result);
};
};
之后我使用这样的 shpjs 包:
const geoJson = await shp(geoData)
我该如何解决这个问题?
您可以使用 npm 包
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin');
并在react节点模块配置文件和webpackconfig中添加上面的包
参考此链接杰伊·帕特尔作者
这是对我有用的最简单的解决方案:
安装
npm i node-polyfill-webpack-plugin react-app-rewired
然后在根项目文件中创建名为 config-overrides.js
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin');
module.exports = function override(config, env) {
config.plugins.push(new NodePolyfillPlugin());
return config;
}
并更新package.json中的脚本
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
},