我怎样才能将jsx转换为coffeescript并使其与rails配合使用

时间:2015-09-14 08:00:19

标签: ruby-on-rails coffeescript reactjs

使用JavaScripts处理大量嵌套括号是很痛苦的。那么,我怎么能将这个文件sample.js.jsx转换成CoffeeScript并让它在Ruby on Rails下运行呢?

我正在使用gem 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 个答案:

答案 0 :(得分:1)

首先,有一个js2coffee转换器。将js代码粘贴到此处并使用.js.cjsx扩展名保存文件(coffee-jsx)。你需要用引号临时包装jsx。

其次,您需要安装gem'sprockets-coffee-react'。它将完成剩下的工作(资产,链轮等)