首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在处理输入字段时,如何处理setState()?

在处理输入字段时,如何处理setState()?
EN

Stack Overflow用户
提问于 2016-02-29 22:03:38
回答 1查看 388关注 0票数 0

我有三个文本框。我有一个下拉菜单。

当应用程序启动/加载页面时,文本框是空的,下拉列表中填充了各种产品。

当我从下拉列表中选择一项时,我会将对象加载到文本字段中进行编辑。

当使用属性(this.props)时,数据正确地加载到文本框中,但我无法对文本进行编辑,因为应该使用状态进行编辑。

但是,如果我使用状态(this.state),组件永远不会保持同步。如果从下拉列表中选择项目1,它将被加载到状态,但在从下拉列表中选择另一项之前不会呈现到屏幕上。

因此,当我选择第2项时,它会将项目1加载到文本框中。

引用反应文档的话。

"setState()不会立即变异this.state,而是创建一个挂起的状态转换“

你们怎么处理这件事?我觉得我都试过了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-29 22:20:23

您需要将状态保存在父组件中。父文件将是所有文本框和下拉菜单的父文件。从这里开始,您只需要将回调函数作为支持传递到文本框和下拉组件。在这个回调函数中,您应该将选定的下拉菜单项作为参数。当函数被调用时,需要更新文本框的内容。我认为您可以通过为三个文本框保留状态来做到这一点,即当前显示的文本。最初他们的状态是不确定的,所以他们会显示为空的。在状态中,您可以跟踪索引和值。

之后,还需要将回调函数传递给文本框。然后,这些回调函数将在编辑字段时跟踪和更新下拉菜单项的内容。当您编辑时,您将调用回调,它将更新状态,并再次呈现带有新内容的下拉菜单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35710602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档