React setState() 返回什么?

IT技术 javascript reactjs
2021-04-30 15:18:56

我在this.setState()三元内部使用并试图弄清楚它返回什么。该文档没有提供关于它返回什么的任何信息。

3个回答

正如之前评论的那样,

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

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

现在回答你的问题,由于 react 与 Typescript 密切相关,下面的代码来自 react.js 的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 的setState()函数缺少明确的 return 语句,因此将 return undefined如果您需要来自 的返回值setState(),则应使用!!将强制它返回的false希望有帮助

setState() 返回未定义,但如果您想“破解”它并返回 true

只需使用:

!!!setState({...}) //returns true