我在this.setState()
三元内部使用并试图弄清楚它返回什么。该文档没有提供关于它返回什么的任何信息。
React setState() 返回什么?
IT技术
javascript
reactjs
2021-04-30 15:18:56
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