SyntaxError:[stdin]:24:11:意外。反应摆幅

时间:2016-02-11 20:13:00

标签: ruby-on-rails reactjs react-rails

我试图用react-rails gem创建表单。但我收到一个错误:

  

SyntaxError:[stdin]:24:11:意外。

通过试用我发现,问题出现在React.DOM.div行(代码中已标记),但我不明白,为什么会发生这个问题,我已经检查了一百次:)

组件/ country_form.coffee

@CountryForm = React.createClass
    getInitialState: ->
        name: ''

    valid: ->
        @state.name

    handleChange: (e) ->
        name = e.target.name
        @setState "#{name}": e.target.value

    handleSubmit: (e) ->
        e.preventDefault()
        $.post '', { country: @state }, (data) =>
            @props.handleNewCountry data
            @setState @getInitialState()
        , 'JSON'

    render: ->
        React.DOM.form
            onSubmit: @handleSubmit
            React.DOM.div # Problem is here
                className: 'form-group'
                    React.DOM.label
                        'Name'
                    React.DOM.input
                        type: 'text'
                        className: 'form-control'
                        name: 'name'
                        value: @state.name
                        onChange: @handleChange
            React.DOM.div
                className: 'form-group'
                    React.DOM.button
                        type: 'submit'
                        className: 'btn btn-primary'
                        disabled: !@valid()
                        'Save'

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我认为它应该再次缩进。

现在它甚至与prop的{​​{1}}:

onSubmit

但也许它应该再次增加:

    React.DOM.form
        onSubmit: @handleSubmit
        React.DOM.div # Problem is here
            className: 'form-group'

答案 1 :(得分:1)

我发现了问题。 RubyMine(我认为也是IntelliJ IDEA)用空格缩进CoffeeScript文件。只需将缩进更改为制表符,错误就会消失。

IntelliJ IDEA settings (CoffeeScript indentions)