我在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