Coffeescript - 单击后React setState不呈现

时间:2017-06-27 21:26:00

标签: javascript reactjs coffeescript

我正在尝试在用户点击按钮时更改按钮的文字。

状态发生变化,但组件似乎没有重新渲染

但是,当我将状态置于上层(在外部if语句中)时,组件文本确实会发生变化(但它会在单独的视图中)。我需要将该组件保留在else if子句

我错过了什么或者这不起作用吗?我仍在学习反应,不了解国家的整个概念和更深层次的国家变化

render: ->

    if @state.couponSet == true and @state.couponSuccess != true
      div {},
        "Some view"
    else if @state.couponMode != true and @ state.couponSuccess != true
        div { className: "container" },
                SelectButton
                  clickHandler: @onSelectPlan.bind(null, this, 0)
                  wrapperClassName: 'button-wrapper'
                  className: 'plan-select'
                  buttonText: if @state.planSelected == true then "Selected" else "Select"
    else
        ...

并在onSelectPlan

onSelectPlan: (e, plan) ->
    if plan == 0
        @setState planSelected: true

1 个答案:

答案 0 :(得分:0)

你的“绑定”看起来不对劲。 你可能根本不需要“绑定” - 只需使用一个胖箭头:

SelectButton
  clickHandler: (e, plan) =>
    if plan is 0
      @setState planSelected: true