Javascript resact setState()返回什么?

Javascript resact setState()返回什么?,javascript,reactjs,Javascript,Reactjs,我在一个三元函数中使用this.setState(),试图找出它返回的内容。文档没有提供任何关于返回内容的信息。React的setState()函数缺少显式返回语句,因此将返回未定义的。如果需要从setState()返回值,则应使用将强制它返回false。希望这会有所帮助正如前面评论的那样 我认为它不会有任何回报。这是一个二传手 您可以参考了解它的功能 现在回答您的问题,因为react与Typescript密切相关,下面的代码来自react的index.d.ts文件。您可以找到文件并检查定义 s

我在一个三元函数中使用
this.setState()
,试图找出它返回的内容。文档没有提供任何关于返回内容的信息。

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

正如前面评论的那样


我认为它不会有任何回报。这是一个二传手

您可以参考了解它的功能

现在回答您的问题,因为react与Typescript密切相关,下面的代码来自react的
index.d.ts
文件。您可以找到文件并检查定义

setState(f:(prevState:Readonly,props:P)=>Pick,callback?:()=>any):无效;
setState(状态:Pick,callback?:()=>any):void;
如您所见,这两个定义具有相同的返回类型:
void
。这是因为,首先,它是一个setter函数。其次,在大多数情况下,setState将触发重新渲染。所以你将不能做太多

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

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

只需使用:

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

我认为它不会有任何回报。这是一个很好的例子,你试着读回在这个州设置的内容,然后根据它做出决定?如果是,则应在回调函数中移动该逻辑,并将其作为第二个参数发送到
setState
setState
函数调度更新,状态既不会立即修改,也不会作为值从调用返回。更新状态后采取行动的正确方法是通过回调作为第二个参数。根据类型定义,
setState
返回
void
:答案是这样的。对的它是一个setter函数。它获取一个值并设置它。不需要返回任何内容。重要的是,如果使用的是钩子版本,如useState()和useReducer(),则不能将回调作为第二个参数传递。状态更改后的任何处理都应该放在useffect()调用上。@timarcosdias虽然你是正确的,但文章是关于
setState
。有了钩子,情况就完全不同了