我希望处理所选事件的反应,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。发现同样的问题:link,change
事件未来,因为我改变了状态。
答案 0 :(得分:0)
我发现了这个伎俩:
str.join