Javascript 反应器&;谷歌MDL按钮onClick不工作
我有一些类似下面的JS。我发现,如果我删除Javascript 反应器&;谷歌MDL按钮onClick不工作,javascript,reactjs,material-design,Javascript,Reactjs,Material Design,我有一些类似下面的JS。我发现,如果我删除mdljslayout,按钮的onClick就会起作用。否则它就失败了。为什么会这样?我已经做了componentHandler.upgradeDom() “严格使用”; module.exports=React.createClass({ componentDidMount:function(){ console.log('update') componentHandler.upgradeDom(); }, addExpense:function(){
mdljslayout
,按钮的onClick
就会起作用。否则它就失败了。为什么会这样?我已经做了componentHandler.upgradeDom()
“严格使用”;
module.exports=React.createClass({
componentDidMount:function(){
console.log('update')
componentHandler.upgradeDom();
},
addExpense:function(){
console.log(“添加费用”);
},
render:function(){
返回(
费用
增加费用
);
}
});
如果我查看React调试器工具,我实际上可以看到onClick应该被绑定
看起来mdl与react不兼容,并阻止react组件的单击事件工作。希望在将来的更新中可以解决这个问题,但在此之前,您可以通过在安装组件后手动重新添加事件来解决这个问题
componentDidMount: function() {
componentHandler.upgradeDom();
var button = this.refs.btnAddExpense;
button.addEventListener('click', this.addExpense);
},
希望回答您的问题:
有了所使用的资源,它显然不需要触及DOM
HTML
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js">
</script>
<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>
JS
var Widget = React.createClass({
handleBtnClick: function(e) {
e.preventDefault();
alert("clicked!");
return true;
},
render: function() {
return <div >
<form>
< button className = "mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-textfield--full-width mdl-button--facebook"
onClick = {
this.handleBtnClick
} >
Click MEEEEEE!
< /button > </form> < /div >;
}
});
ReactDOM.render( < Widget / > ,
document.getElementById('container')
);
HTML
JS
var Widget=React.createClass({
把手点击:功能(e){
e、 预防默认值();
警报(“单击!”);
返回true;
},
render:function(){
返回