0

私はこのチュートリアルを進めていますが、Records コンポーネントを変更してReact.createElement RecordForm, handleNewRecord: @addRecord2 つの DOM レンダリングの間に追加するまでは問題ありませんでした。干渉し、DOM のレンダリングをまったく妨げているようです。

コンポーネントは次のとおりです。

@Records = React.createClass
  getInitialState: ->
    records: @props.data
  getDefaultProps: ->
    records: []
  addRecord: (record) ->
    records = @state.records.slice()
    records.push record
    @setState records: records
  render: ->
    React.DOM.div
      className: 'records'
      React.DOM.h2
        className: 'title'
        'Records'
      React.createElement RecordForm, handleNewRecord: @addRecord
      React.DOM.hr null
      React.DOM.table
        className: 'table table-bordered'
        React.DOM.thead null,
          React.DOM.tr null,
            React.DOM.th null, 'Date'
            React.DOM.th null, 'Title'
            React.DOM.th null, 'Amount'
        React.DOM.tbody null,
          for record in @state.records
            React.createElement Record, key: record.id, record: record

コンソール エラーには、「Uncaught ReferenceError: RecordForm が定義されていません」と表示されます。はい、そうです。それは次のとおりです。

@RecordForm = React.createClass
 bla bla bla bla
 handleChange: (e) ->
   name = e.target.name
   @setState "#{ name }": e.target.value
 handleSubmit: (e) ->
    e.preventDefault()
    $.post '', { record: @state }, (data) =>
      @props.handleNewRecord data
      @setState @getInitialState()
    , 'JSON'
  render: ->
    React.DOM.form
     bla bla bla bla

何を与える?

4

1 に答える 1

0

handleChange の前に意図しないスペースがあったようです。各関数の間に改行を追加すると解決しました。>:/

于 2016-05-08T22:20:17.847 に答える