首页 > 解决方案 > 来自函数的 setState 不更新属性

问题描述

我有一个按钮分配给一个应该在单击后更新页脚属性但它不会更改页脚文本的函数。然而,它正在执行控制台日志语句。我有一种感觉,它与“这个”有关,但我不知道谷歌要解决什么问题。

我正在尝试学习 Reactjs,特别是关于状态和超时的更多信息。

https://jsfiddle.net/dwekg5aq/2/

页脚功能:

  updateFooter = () => {
    //alert("clicked");
    this.setState = {
      footer: "new footer text from button!"
    }
    console.log("updateFooter func fired.")
    console.log(this.state)
  }

编辑:不要在函数中分配你的状态:/

任何帮助深表感谢

标签: reactjs

解决方案


setState是一个函数。你需要这样称呼它:

this.setState ({
   footer: "new footer text from button!"
});

从反应文档:

您可以使用单独的 setState() 调用独立更新 [与您的状态不同的元素]。

您不会将结果分配setState给任何东西,您只需调用它,因为它是您类中的 React 方法。

代替

this.setState = ({
  footer: "new footer text from button!"
});

你只需要调用它并让 React 为你管理它:

this.setState ({
  footer: "new footer text from button!"
});

推荐阅读