React 的状态是如何工作的?

Posted

技术标签:

【中文标题】React 的状态是如何工作的?【英文标题】:How does the state of React work? 【发布时间】:2017-10-11 11:51:33 【问题描述】:

我的代码在这里:https://jsfiddle.net/woyuditan26/bgwrfLxh/

      this.setState((prevState) => (
        tasks: prevState.tasks.concat(newTask),
        text: ''  ////  why the input text is not cleared when I clicked the button ?
      ));

为什么我点击按钮时输入的文字没有被清除?

【问题讨论】:

你在哪里使用text 我们是否有“debug-my-code”标签或类似标签? 我建议你阅读这个react/docs/forms。 因为您的表单是“不受控制的”:) 【参考方案1】:

原因是,您使用的是uncontrolled element(因为您没有使用 input 元素定义 value 属性),要使其成为 controlled element 您需要使用 input 元素指定 value 属性。

像这样:

<input type="text" value=this.props.text onChange=this.handleTextChange/>

检查工作的fiddle。

【讨论】:

以上是关于React 的状态是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

React 如何更新另一个组件的状态?

如何在 React 状态更新加载主屏幕时删除警告

React Hooks:如何在 useEffect 中设置状态?

react源码学习-实习篇-状态更新

如何将 React 中的状态从一个类传递到另一个类?

如何在 React 中使用 ES6 类设置初始状态?