報imageDatas.forEach is not a function的錯誤
安裝了最新的版本,react聲明的用法變了,視頻里用的var ImgFigure=React.createClass({render:function(){....}});這樣的聲明。安裝的用的
class ImgFigure extends React.Component {?render() {...?}}這樣的。所以我用了React.Component 這個什么然會提示說要換react的版本。
我不知道是不是聲明這里的錯。這樣用對不對
代碼如下:
require('normalize.css/normalize.css');
require('styles/App.css');
import React from 'react';
//獲取圖片相關的數據
var imageDatas = require('../data/imageDatas.json');
//利用自執(zhí)行函數。將圖片名信息轉換成圖片URL路徑信息
imageDatas = (function genImageURL(imageDatasArr) {
for (var i = 0, j = imageDatasArr.length; i < j; i++) {
var singleImageData = imageDatasArr[i];
singleImageData.imageURL = require('../images/' + singleImageData.fileName);
imageDatasArr[i] = singleImageData;
}
return imageDatasArr;
})(imageDatas);
class ImgFigure extends React.Component {
? render() {
? ?return(
<figure className="img-figure">
<img src={this.props.data.imageURL} alt={this.props.data.title}/>
<figcaption>
<h2></h2>
</figcaption>
</figure>
)
? }
}
/*大管家*/
class AppComponent extends React.Component {
? render() {
? ? ?
/*聲明*/
var controllerUnits=[],
imgFigures=[];
imageDatas.forEach(function(value){
imgFigures.push(<ImgFigure data ={value}/>);
});
return (
<section className="stage">
<section className="img-sec">
{imgFigures}
</section>
<nav className="controller-nav">
{controllerUnits}
</nav>
</section>
? ? );
? }
}
AppComponent.defaultProps = {
};
export default AppComponent;
最后報錯就是
[HMR] Waiting for update signal from WDS...和[WDS] Hot Module Replacement enabled.這2處是錯誤嗎,怎么解決?
我卡在這里好久了。注釋掉錯誤的地方就出現2個警告
求幫助!菜鳥一枚,學的很痛苦,一度中斷過,現在有拾起來,我也正在不斷的嘗試。
2017-08-18
let imageDatas = require('json!../data/imageDatas.json'); ?// 改成這樣子的?
項目源碼在:https://github.com/3terrace/gallery-by-react,你可以去看看
2018-01-02
你這個問題是json-loader導致的,require('../data/imageDatas.json')加載的是Object對象,而不是數組,所以才報上面的錯誤的。
我的解決方法是修改配置文件,把 .json文件交給loader進行處理, 不過新版本是在cfg文件夾下的default.js中
2017-08-21
改過了,然后報錯說Uncaught Error: Cannot find module './undefined'.我拉了別人的代碼,也跑起來了。然后復制node-modules.和package.json.到自己的項目中運行還是報錯!要瘋了