Coffeescript - 单击后React setState不呈现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Coffeescript - 单击后React setState不呈现相关的知识,希望对你有一定的参考价值。

我试图在用户点击按钮时更改按钮的文本。

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

但是,当我将状态置于上层(在外部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
答案

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

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

以上是关于Coffeescript - 单击后React setState不呈现的主要内容,如果未能解决你的问题,请参考以下文章

Webstorm 中的 coffeescript-react (.cjsx) 支持

如何在 React with Coffeescript 中渲染 HTML 标签?

React,如何防止在拖动后执行单击事件?

React Native - 单击 Flatlist 的项目(搜索列表后)

详解 Webpack+Babel+React 开发环境的搭建

单击登录按钮后,React 本机发布签名的 apk 文件崩溃