当前位置: 首页 > 知识库问答 >
问题:

正在更新reactjs中的setState

廖华翰
2023-03-14

setStatereactjs文档中:

setState()不会立即突变this.state但会创建一个挂起的状态转换。调用此方法后访问this.state可能会返回现有值。

第二个(可选)参数是一个回调函数,它将在setState完成并重新呈现组件后执行。

如果我只是想更新我的状态,我会创建一个什么都不做的回调吗?

共有2个答案

元景天
2023-03-14

回调是可选的,因此您可以执行this.setState({key:value})

唐弘厚
2023-03-14

在编写setState()时,不会立即改变this.state,而是创建挂起的状态转换。因为它是以异步方式工作的。所以,如果您想在设置状态变量的状态后立即执行操作,那么回调将非常有用。

例如

setState(
  { name: "Hello World" },
  () => console.log(this.state)
);
 类似资料:
  • 这就是状态变量中的内容 我试图做的是调用一个函数来更新一个位置的期望值。例如,我使用的函数如下: 它不起作用。我知道我可以传递一个完全更新的数组,但我需要当前状态的其他值。

  • 我试图了解如何构建具有不同"页面"或"视图"的ReactJS应用程序。 我将以下组件作为我的基础应用程序,并且我正在React状态中使用currentState属性在视图中的活动组件之间切换。 它执行此任务,但在启动dataLoaded回调时,组件从不接收更新的recipes数组。 如何根据应用程序中的更新状态更新道具? 还是我处理这整件事的方式错了?

  • 问题内容: 我觉得我已经在阳光下尝试了所有东西,但是一定缺少一些非常明显的东西。在下面,我试图将一个新项目推入数组并更新状态,但是无论我做什么,状态都不会从初始数组更改。 当我console.log newListItems时,新项目就包括在内,因此到目前为止所有工作都在进行,它是不会更新的实际状态。我想念什么? addItem方法: 我也没有在控制台中收到任何错误消息。 完整代码: 问题答案:

  • 问题内容: constructor(){ super(); this.state = { address: { street:null, city:null, postalCode: null } }; } postalCodeChange(e){ this.setState.address.postalCode = e.target.value; console.log(this.state);

  • 我正在做一些地理编码工作,我使用<code>selenium 我已经读过,为什么这个函数在我遍历pandas数据帧后不“生效”?我完全知道iterrow只提供了一个视图,而不是一个用于编辑的副本,但是如果我真的要逐行更新值呢?可行吗?

  • 问题内容: 我是ReactJS(0.13.1)的新手,并且在我的应用程序中创建了一个组件来显示HTML5视频。 它似乎完美运行,但仅适用于第一选择。从一个视频切换到另一个视频时(更改时),页面中实际显示和播放的视频不会改变。 我可以在Chrome检查器中看到元素更新,但是页面中实际渲染的视频没有改变,如果已经播放,则继续播放。Safari和Firefox中也会发生相同的情况。所有其他元素也会适当更