选择和反应

时间:2016-05-19 19:02:21

标签: javascript jquery reactjs jquery-chosen

我希望处理所选事件的反应,example它如何在普通的js中工作。

所以我创建了选择的反应组件:

@ChosenSelect = React.createClass
  propTypes:
    options: React.PropTypes.array

  componentWillMount: ->
    @setState
      selected: @props.value

  componentDidMount: ->
    select = $(ReactDOM.findDOMNode(@refs.select))

    $(select).chosen()
      .on('chosen:showing_dropdown', @props.onShowingDropdown)
      .on('chosen:hiding_dropdown', @props.onHiddingDropdown) 
      .change @props.onChange

  renderOption: (option) ->
    <option key={option.value} value={option.value}>{option.label}</option>

  renderSelectOptions: ->
    if @props.options
      ops = @props.options.map (option) =>
        if option.type == 'group'
          <optgroup label={option.name}>
            {
              option.items.map((item) =>
                @renderOption(item))
            }
          </optgroup>
        else
          @renderOption option

  render: ->
    selectProps = $.extend({}, @props, ref: 'select')
    <select {...selectProps} value={ @state.selected }>
      {@props.children}
      {@renderSelectOptions()}
    </select>

我如何使用此组件:

<ChosenSelect className="form-chosen-select"
              ref="chosen"
              options={ @state.list }
              onShowingDropdown=@toggleFormState
              onHiddingDropdown=@toggleFormState
              onChange=@change />

但是onHiddingDropdown阻止onChange事件,如果我只使用onChange而不使用onHiddingDropdown,则一切正常。也许有人面临类似的问题?

UPD。发现同样的问题:linkchange事件未来,因为我改变了状态。

1 个答案:

答案 0 :(得分:0)

我发现了这个伎俩:

str.join