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
。有了钩子,情况就完全不同了