Javascript 反应事件而不是开火
在使用Javascript 反应事件而不是开火,javascript,reactjs,Javascript,Reactjs,在使用标记并熟悉React时,我发现我的onLoad和onError事件没有触发。在将我的使用简化到最基本的React组件之后,我仍然发现事件没有触发 在下面的组件中,我希望单击呈现的登录到控制台。它渲染得很好,但单击它后,什么也没有发生。我错过什么了吗 我在OS X 10.10.2上的Chrome 40.0.2214.111下使用React 0.12.2,代码由webpack 1.5.3和jsx loader 0.12.2打包 /** @jsx React.DOM */ module.exp
标记并熟悉React时,我发现我的onLoad
和onError
事件没有触发。在将我的使用简化到最基本的React组件之后,我仍然发现事件没有触发
在下面的组件中,我希望单击呈现的
登录到控制台。它渲染得很好,但单击它后,什么也没有发生。我错过什么了吗
我在OS X 10.10.2上的Chrome 40.0.2214.111下使用React 0.12.2,代码由webpack 1.5.3和jsx loader 0.12.2打包
/** @jsx React.DOM */
module.exports = (function () {
'use strict';
var React = require('react');
var SomeComponent = React.createClass({
displayName: 'SomeComponent',
doSomething: function (e) {
console.log('did something');
},
render: function () {
return (
/* jshint ignore:start */
<div onClick={this.doSomething}>Do Something</div>
/* jshint ignore:end */
);
}
});
return SomeComponent;
})();
/**@jsx React.DOM*/
module.exports=(函数(){
"严格使用",;
var React=要求('React');
var SomeComponent=React.createClass({
displayName:'SomeComponent',
剂量测定:功能(e){
log('做了某事');
},
渲染:函数(){
返回(
/*jshint忽略:开始*/
做点什么
/*jshint忽略:结束*/
);
}
});
返回组件;
})();
我终于明白了
在example.jsx
中,我意识到我没有require()
var React = require('react');
var SomeComponent = require('./some-component.jsx');
React.render( ... );
事后看来,这似乎很明显。你的代码运行得很好,-当你a)导入组件或b)渲染组件时,你可能遗漏了一些东西。哇,你说得对!如果我复制组件的内容并替换我的var SomeComponent=require('./some component.jsx')代码>调用,按预期记录。我还没有弄明白为什么当使用CommonJS时,它会呈现OK,但不会触发事件。试试这个module.exports=SomeComponent
,它会帮你修复它。嗯,我切换到这个样式:var SomeComponent=React.createClass({…});module.exports=SomeComponent代码>并进行渲染,但仍然没有触发事件。将我的设置发布到此处以供检查:对不起,我的意思是,在使用该组件的JSX文件中,我缺少Reactrequire()
。当时,我认为问题在于我的组件,而不是设置,但事实并非如此。这里可以看到应用的修复:不过,我感谢您的帮助!