为什么类函数方法没有调用反应js?

时间:2016-05-20 00:07:50

标签: javascript reactjs react-native react-router

我正在尝试制作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'))

1 个答案:

答案 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;