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

React 设置状态() 返回什么?

徐凌
2023-03-14

我在一个三元组中使用了< code>this.setState(),并试图找出它返回的内容。文档没有提供任何关于它返回什么的信息。

共有3个答案

羊舌和安
2023-03-14

setState()返回undefined,但是如果你想“破解”它并返回true

只需使用:

!!!setState({...}) //returns true
周马鲁
2023-03-14

React的setState()函数缺少显式的返回语句,因此将返回未定义的。如果您需要从setState()返回值,您应该使用,这将强制它返回false。希望有所帮助

颜河
2023-03-14

如前所述,

我不认为它返回任何东西。这是二传手。

您可以参考 setState 文档来了解它的作用。

现在来回答你的问题,因为react与Typescript紧密相关,下面的代码来自react的< code>index.d.ts文件。你可以在这里找到这个文件,也可以在这里查看它的定义

setState<K extends keyof S>(f: (prevState: Readonly<S>, props: P) => Pick<S, K>, callback?: () => any): void;
setState<K extends keyof S>(state: Pick<S, K>, callback?: () => any): void;

如您所见,两个定义都有相同的返回类型:void。这是因为,首先,它是一个setter函数。其次,在大多数情况下,setState会触发重新渲染。所以你不能做太多。

如果必须在setState之后进行一些处理,可以将回调作为第二个参数传递。

 类似资料:
  • 我正在使用React-useState创建状态为的对象。在成功调用API后,将更新为数据对象。 我有一个表单可以更改此状态,但我还有一个取消按钮。单击“取消”时,如何将此状态恢复为其初始值(API调用后)? 我应该创建另一个状态变量和存储初始状态在那里,然后更新我的状态基于?

  • 我正在尝试设置React组件中的状态,以便它在子组件的输入值发生变化时进行更改。我可以console.log和并获得预期的字符串,但是我不能编译这个函数: 我很困惑,因为我在我的。 我的getInitialState是:

  • 我目前在react native中有一个函数,它执行以下操作: 我运行上述命令,可以确认arrayId和title变量有效并包含数据。arrayId也不是“selectProduct”。我在调试时在那里添加了一个console.log,以确保它运行,事实上确实如此。我期望的行为是状态立即更新。 但是,所选下拉列表的状态不会更新。在this.setState更新之后添加:console.log(th

  • 是否有方法将defaultValue传递给状态?我也尝试了value={},但值根本不变。

  • 我是一个初级程序员,努力理解我应该如何处理孙子状态(或者看看有孙子状态是否是个好主意)。 我的问题是。。。 1.是否可以通过更改孙子? 2.在美国生孙子是个坏主意吗? 为了举例说明,这里是一个组件的构造函数。 我把看作是子,而看作是孙子。 这里是一个JSX。 当触发时,我想验证函数'this.submit'中的输入。 在这个例子中,应该被设置(即更改),但是上面的代码不起作用。 也许分解此应用程序

  • 像“addSomething()”这样的类也有方法。这个可以成功也可以不成功。因此,成功的状态可以用一个布尔返回值来显示。但是有时方法调用会因为几个原因而失败。“false”显示了这一点,但只是以一般方式显示。有时程序员想知道失败的原因。为此,提供一个自己的报告类来提供这样的功能有用吗? 然后,您可以决定是否要使用“wassucsuccess()”获取一般成功报告,或者是否还要使用“getMess