2015-09-14 60 views
-1

使用JavaScript處理大量嵌套括號是很痛苦的。那麼,我怎麼能將這個文件sample.js.jsx轉換成CoffeeScript並讓它在Ruby on Rails下工作?如何將jsx轉換爲coffeescript並使其與rails兼容

我與寶石react-rails

示例代碼

function getNewSymptomLayer(index) { 
    return { 
     index: index, 
     layer1: "", 
     layer2: [], 
     layer3: [] 
    } 
} 
function SymptonsDataStore() { 
    this.symptom = []; 
    this.callback = []; 
} 

.... 

var SearchBar = React.createClass({ 
    getInitialState: function() { 
     return { 
      data: dataStore.getCurrentState(), 
      mainSymptomCode: '' 
     }; 
    }, 
    stateChange: function() { 
     this.setState({data: dataStore.getCurrentState()}); 
    }, 
    removeRow: function (index, evt) { 
     this.symptom.splice(index, 1); 
     this.setState({data: symptoms}); 
    }, 
    render: function() { 
     var sym = this.state.data.map(function (indexOfSymptoms, index) { 
      return (<Symptom key={index} data={indexOfSymptoms}/>); 
     }); 
     dataStore.register(this.stateChange); 
     var add = function() { 
      dataStore.addRow(); 
     }; 
     return <div>{sym} 
      <span onClick={add}>+</span> 
     </div>; 
    } 
}); 
React.render(<SearchBar data={dataStore.getCurrentState()}/>, document.getElementById("sym")); 

回答

1

首先的工作,有一個js2coffee轉換器。將js代碼粘貼到此處並使用.js.cjsx擴展名(coffee-jsx)保存文件。您需要暫時用引號包裝jsx。其次,你需要安裝gem'sprockets-coffee-react'。它會爲剩下的東西(資產,鏈輪等)做好工作

+0

js2coffee不能工作,我認爲它不承認JSX。我會嘗試你提到的下一個 – newBike

+0

對!我已經更新了答案。您需要暫時將您的jsx包裝爲引號,例如: +'轉換爲'「 +」'。轉換和複製粘貼後需要刪除這些引號 – asiniy

相關問題