fetch获取本地json数据

学习react的时候,想要获取本地的json数据
目录结构
想要的是获取到name.json
fetch获取本地json数据_第1张图片

componentWillMount(){
      fetch('./components/datas/name.json')   
      .then((res) => {return res.json(); })  
      .then((data) => {alert(JSON.stringify(data));this.setState({selV:JSON.stringify(data)});})  
}

这段获取数据的代码是写在App.jsx组件中的,按照路径来说,看起来是没错的,但是运行起来之后就一直报错,404
在这里插入图片描述
后来百度之后一些论坛和博客上说,路径应该是以index.html文件所在的相对路径(我看自己的目录结构App.jsx和我的index.html就是平级的,那按照此说法我这样是可以获取的?)

后面想了一会,其实是很多的论坛说的不够清楚,这里的index应该是虚拟的index文件,不是指的我上面放出来的目录结构上 src–index.html。

因为我们在使用webpack对项目进行打包的时候,使用了html-webpack-plugin,当不指定contentBase的话dev-server的默认根目录是在webpack.config同一级的目录下,也就是说:这里生成的虚拟index.html是在根目录里面的,也就是和webpack.config.js这些配置文件是平级噢!

如果你手动指定了contentBase的话,再自己多检查一下路径吧!

接下来我在自己的项目中修改了一下路径就对了!
可以先这样试一下,看是不是可以(不论是否指定了contentBase,或者自己也很模糊虚拟index.html的位置,就按照下面的方法先试着获取文件内容吧,免得在项目里搞晕了 -.-||| )
fetch获取本地json数据_第2张图片
fetch路径修改如下:亲测可以!

componentWillMount(){
      fetch('./src/components/datas/name.json')   
      .then((res) => {return res.json(); })  
      .then((data) => {alert(JSON.stringify(data));this.setState({selV:JSON.stringify(data)});})  
}

你可能感兴趣的:(React,项目学习)