2016-05-27 42 views
2

我知道這個問題已經有很多問題了,但沒有一個能夠解決我的問題。Dialog不是一個函數 - React

我創建使用JQuery-UI dialog 它看起來像這樣一個陣營組成:

var VehiclePlantDialog = React.createClass({ 
    handleSubmit: function(e) { 
     e.preventDefault(); 
     this.props.closeDialog(); 
    }, 
    render: function() { 
     return (
      <div> 
       <form> 
        <input ref="inputText" /> 
        <input type="submit" /> 
        <button onClick={this.props.closeDialog}>Cancel</button> 
       </form> 
      </div> 
     ); 
    } 
}); 

var VehiclePlants = React.createClass({ 

    openDialog: function (e) { 
     e.preventDefault(); 

     var myDialog = $('<div>').dialog({ 
      title: 'Dialog example', 
      width: 400, 
      close: function (e) { 
       React.unmountComponentAtNode(myDialog); 
       $(this).remove(); 
      } 
     }); 

     var closeDialog = function (e) { 
      e.preventDefault(); 
      myDialog.dialog('close'); 
     }; 
     $(document).ready(function() { 
      ReactDOM.renderComponent(<VehiclePlantDialog closeDialog={closeDialog} />, myDialog); 
     }); 
    }, 
    render: function() { 
     return (
      <div> 
        <button onClick={this.openDialog}>Open dialog</button> 
      </div> 
     ); 
    } 
}); 

到這一點,在我的ejs文件包括jquery

<% script('/scripts/jquery.js') -%> 
<% script('/scripts/jquery-ui.min.js') -%> 

的包括作品,但,當我點擊在打開對話框按鈕,控制檯說dialog is not a function,而如果我把它寫在它的控制檯它。 enter image description here

任何人都可以幫助我嗎?

注:我使用BowerGulpReactReactDomjqueryjquery-ui

回答

0

我認爲這個問題是有選

$('<div>').dialog({ 

嘗試從開發者檢查$( '')工具。

可能是這應該工作

$("<div>My div content</div>").dialog({ 

編輯 是的,你是正確的。但是你的代碼沒有問題。它已經正常工作。

請檢查這個fiddle

+0

這給了我完全相同的結果。所以不,這不起作用, – Tikkes

+0

@Tikkes我已經更新了我的答案。是的,我錯了。你提供的代碼已經正常工作了。我已經創建了jsfiddle。 – Beniton

+0

我看你已經包括了巴別塔,這可能是我的問題嗎?無論如何,我轉向「React-Modal」,但如果是的話,我會接受你的答案 – Tikkes

相關問題