我正在尝试制作node的事件模块的简单示例。我看到了这个视频。我正在尝试在代码笔上做同样的例子。但是它不起作用为什么?
https://www.youtube.com/watch?v=PvjNglsyOHs&index=9&list=PLoYCgNOIyGABj2GQSlDRjgvXtqfDxKm5b
这是我的代码
http://codepen.io/naveennsit/pen/dMBVaz?editors=1010
var {EventEmitter}=events;
class Todostore extends EventEmitter {
constructor(){
super();
this.todo= [{
hse: 'asd'
}, {
hse: 'adas'
}]
}
getAll(){
return this.todo;
}
}
const todostore =new Todostore;
class App extends React.Component {
constructor(props) {
super(props);
console.log('----')
this.state = {
data:todostore.getAll()
};
}
render() {
return <ul > {
this.state.data.map((item) => {
return <li
> {
item.hse
} < /li>;
})
} <
/ul>
}
}
React.render( < App / > , document.getElementById('app'))
答案 0 :(得分:1)
这里有两个问题。
一,为了将来参考,如果您在文件中链接到GitHub上的一些原始Javascript,请执行以下操作:
https://raw.githubusercontent.com/Gozala/events/master/events.js
会导致错误:
拒绝从...执行脚本,因为它的MIME类型(text / plain)不可执行,并且启用了严格的MIME类型检查。
您可以使用rawgit.com作为此
的变通方法 https://rawgit.com/Gozala/events/master/events.js
有关此主题的更多信息,请访问:Link and execute external JavaScript file hosted on GitHub
第二个和更多更大的问题是,Codepen(以及JSFiddle和JSBin等其他JS游乐场类型站点)是为客户端代码构建的。您正在链接到一个模块,该模块设计用于服务器端CommonJS环境,如Node.js.它不会起作用。
如果您的系统上安装了Node,您应该可以通过使用npm / bower抓取模块在基本设置中本地测试它:
npm install --save eventemitter3
将其导入测试文件中:
import {EventEmitter} from 'eventemitter3';
// Rather than: var {EventEmitter}=events;