问题标签 [setstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
260 浏览

javascript - setState 不适用于 React 和 Meteor 中的 UI 更改

我正在尝试使用按钮来切换 UI 显示。当用户单击按钮时,它将显示相应的 UI。并且当用户再次点击时将其隐藏。我使用 setState 来切换“showItemBank”的值,但 UI 只显示一次,然后默认返回不可见。我错过了什么重要的东西吗?

这是我的应用程序使用 Meteor 和 React 的 jsx。

0 投票
1 回答
930 浏览

native - 用发送的变量反应 Native setState

我想知道当输入字段中的文本被更改以更改特定变量时如何发送变量,以便我可以重用相同的函数。

就像在更改文本时一样,它会更改“性别”的状态,但是如果我更改该文本,我希望它能够更改“姓名”状态,所有这些都具有相同的功能。我还需要添加其他字段,如果文本被更改,它将使用相同的函数更改该变量的状态。

0 投票
3 回答
2057 浏览

reactjs - ReactJS - 卸载和挂载时出现 setState 错误

我是 React 新手,所以我可能不理解正确的思考概念。

我想做可以安装和卸载的自动更新数据组件。

这是我卸载然后安装组件时遇到的错误:

警告:setState(...):只能更新已安装或正在安装的组件。这通常意味着您在未安装的组件上调用了 setState()。这是一个无操作。请检查 MeasurementsDataTable 组件的代码。

这是代码:

0 投票
2 回答
1593 浏览

meteor - 在现有状态转换期间无法更新

当我加载它时,我的流星项目不断使我的浏览器崩溃。this.setState({input_36:currentApp.input_36});如果我在 App.jsx 文件中注释掉,我只能避免浏览器崩溃。有人可以告诉我如何修复我的代码,以便项目可以加载而不会崩溃,如果您单击 中的任何超链接<ul>,它将重新呈现表单?href=并通过确保属性存在来确保链接符合 WCAG 和搜索引擎优化?

这是我的项目...在终端命令行中我做

然后我的项目中有以下文件

crudapp.html

crudapp.jsx

应用程序.jsx

然后我转到命令行并键入meteor以启动项目。然后我去我的网络浏览器。出现一个文本字段,您可以输入一些内容并按几次 Enter,您创建的每个表单的列表将自动出现。

接下来,我通过取消注释粗体来修改 App.jsx。该项目将重新编译。然后我转到我的网络浏览器,它因为带有错误消息的无限循环而冻结

在现有状态转换期间无法更新(例如在“渲染”内)。渲染方法应该是 props 和 state 的纯函数。

我该如何解决这种情况,以便它加载项目并单击链接将重新呈现表单?

0 投票
1 回答
1740 浏览

reactjs - 在 textarea 上反应 setState 被忽略

我正在开发一个简单的流星+反应 CRUD 应用程序。在下面的代码中, mythis.setState()似乎对<textarea>. 因此,当我单击链接并重新呈现表单时,该功能会clickLoadForm(appId)正确更新<input>元素的状态,但不会更新<textarea>,即使 console.log 清楚地显示所有字段都有内容。我做错什么了?

0 投票
1 回答
1560 浏览

reactjs - React componentDidMount() 在未安装的组件上触发

一个从数据存储中调用 promise 的简单反应组件componentDidMount正在引发警告:

警告:setState(...):只能更新已安装或正在安装的组件。这通常意味着您在未安装的组件上调用了 setState()。这是一个无操作。请检查 LocationNameView 组件的代码。

我扔了一些调试console.log,看看this.isMounted()是真还是假,里面componentDidMount this.isMounted()会第一次返回假,然后又是真的。我不确定文档是否清晰或名称componentDidMount是否扭曲了我的推理,但似乎只有在实际安装组件时才应调用此方法。

在此处输入链接描述

0 投票
7 回答
232027 浏览

javascript - 我可以在 setState 完成更新后执行一个函数吗?

我对 ReactJS 很陌生(就像今天刚开始一样)。我不太明白如何setState工作。我正在结合 React 和 Easel JS 来根据用户输入绘制一个网格。这是我的 JS 箱:http: //jsbin.com/zatula/edit ?js,output

这是代码:

当您使用其中一个下拉菜单更改行数或列数时,您可以在 JSbin 中看到,第一次不会发生任何事情。下次更改下拉值时,网格将绘制到先前状态的行和列值。我猜这是因为我的this.drawGrid()函数在setState完成之前正在执行。也许还有其他原因?

感谢您的时间和帮助!

0 投票
1 回答
1513 浏览

javascript - 在 React-Router Children 中渲染 Ajax 请求

我遇到了 React-Router 和 AJAX 请求的问题。

这是 index.js(入口文件):

App.js 文件只有 render 函数,它返回

调用用户组件。用户文件几乎相同。

在 UserView.js 文件中,我使用superagent发出 AJAX 请求

但这不起作用,它给了我错误:

为什么?我认为错误在于我试图通过孩子来操纵父母的状态。

0 投票
4 回答
924 浏览

javascript - 无法使用 setState onClick 使变量进入状态

做一个 React 项目并不断遇到类似的问题。在单击时使用 setState 使变量进入状态时遇到问题。在这种情况下,当单击相应的按钮时,我无法将我的播放器对象传递为 ActivePlayer 状态。但是,我可以将其设置为变量,但在应用程序的其他情况下,我需要将其设置为状态,这似乎是最直接的示例。

0 投票
1 回答
372 浏览

properties - 处理输入字段时如何处理 React setState()?

我有 3 个文本框。我有 1 个下拉菜单。

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

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

使用属性 (this.props) 时,数据会正确加载到文本框中,但我无法对文本进行编辑,因为这应该使用 state 来完成。

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

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

引用自 React 文档。

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

你们到底是怎么处理这个问题的?我觉得我都试过了。