2015-12-11 76 views
1

我有一個特殊的React應用程序,可以讓我在不使用JSX的情況下工作,並且我需要監視React以外的鏈接上的點擊。我似乎無法啓動onClick事件。我需要的代碼來渲染它的頁面不活動的鏈接on.`React onClick without JSX

var LinkCell = React.createClass({ 
     render: function(){ 
     var attr = { 
      "data-id":this.props.dataID, 
      "href": this.props.href, 
      "onClick": function(){return false} 
     }; 
     var lnk = React.DOM.a(attr,this.props.href); 

     return React.DOM.td({},lnk); 
     } 
    }); 

這並不工作,並鏈接去在href網址。我必須在JSX中執行此操作嗎?

+0

你確定它沒有射擊嗎?因爲它[適用於我](http://codepen.io/pen?editors=001)。你期望'返回false'做什麼? – Tyrsius

+0

JSX和非JSX代碼幾乎不可能以不同的方式運行,因爲JSX被轉發,而不是由瀏覽器直接運行。 JSX *成爲您正在查看的代碼。 – Tyrsius

+0

使用帶有'react'預設的'babe'l來傳輸到'js' – surfer190

回答

2

其實我找到了解決方案。至於如果回調返回false你可能知道,通常你必須把一個onclick屬性

return mycallbackfunction(); 

內使用此代碼,我不得不使用的preventDefault();.我不知道爲什麼我沒有嘗試過,但感謝答覆。

var LinkCell = React.createClass({ 
     render: function(){ 
     var attr = { 
      "data-id":this.props.dataID, 
      "href": this.props.href, 
      onClick:function(e){e.preventDefault();} 
     }; 
     var lnk = React.DOM.a(attr,this.props.href); 

     return React.DOM.td({},lnk); 
     } 
    }); 
+0

React棄用從0.12中的事件處理程序返回false的能力,而是強制使用'event.preventDefault/stopPropagation'方法。 –