【问题标题】:setState of react won't rerender反应的 setState 不会重新渲染
【发布时间】:2016-10-20 12:15:04
【问题描述】:

此代码应该在更新到状态后重新呈现,但这并没有发生 可惜不是这样的

@state 已成功更新,但缺少重新渲染

在 data[key].data 中是一个对象数组,它被添加到数组 state[key]

$.get url, {t: key, o: @state[key].length, l: @state[key].length + @state.defaultAmount}, (data) =>
  if key == "allScores"
    data.allScores = data.allScores.data[@props.currentMode]
  $.each data[key].data, (i, o) =>
    @setState (state) =>
      result = {}
      result[key] = state[key].concat(o)
      result

【问题讨论】:

  • 你确定你调用 setState 正确吗?在设置状态以构建结果对象后,您似乎正在使用回调函数
  • 我认为您在$.each$.get 中丢失了this 值。我不知道coffeescript,但你可能需要绑定一些thises

标签: reactjs coffeescript render setstate


【解决方案1】:

如果@state 一次成功更新,那么我最好的选择是 React 不会看到 @state 值的任何变化来触发 re-render

检查@state的属性值,看看是否确实有变化。

【讨论】:

    猜你喜欢
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2019-01-24
    相关资源
    最近更新 更多