错误:该平台不支持nodebuffer

问题描述 投票:0回答:2

我正在尝试使用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)

导入 shp.zip 后出现此错误:Error

我该如何解决这个问题?

javascript reactjs geojson shapefile react-leaflet
2个回答
0
投票

您可以使用 npm 包

const  NodePolyfillPlugin = require('node-polyfill-webpack-plugin');
并在react节点模块配置文件和webpackconfig中添加上面的包 参考此链接杰伊·帕特尔作者


0
投票

这是对我有用的最简单的解决方案:

安装

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"
},
© www.soinside.com 2019 - 2024. All rights reserved.