首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >useState的特例,这是什么?

useState的特例,这是什么?
EN

Stack Overflow用户
提问于 2022-08-16 04:58:43
回答 2查看 87关注 0票数 1

我在用expo + supabase做反应-本土项目。

来自它的QuickStart文档,(https://supabase.com/docs/guides/with-expo#launch)

代码语言:javascript
复制
import 'react-native-url-polyfill/auto'
import { useState, useEffect } from 'react'
import { supabase } from './lib/supabase'
import Auth from './components/Auth'
import Account from './components/Account'
import { View } from 'react-native'
import { Session } from '@supabase/supabase-js'

export default function App() {
  const [session, setSession] = (useState < Session) | (null > null)  // <-- what is this?

  useEffect(() => {
    setSession(supabase.auth.session())

    supabase.auth.onAuthStateChange((_event, session) => {
      setSession(session)
    })
  }, [])

  return (
    <View>
      {session && session.user ? (
        <Account key={session.user.id} session={session} />
      ) : (
        <Auth />
      )}
    </View>
  )
}

我不知道这个useState是如何工作的。

我知道|是位或运算符,但是useState是如何工作的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-16 05:04:03

当您将类型抄本代码粘贴到.js文件中,而编辑器试图格式化它并不幸失败时,就会发生这种情况。

我认为代码实际上是这样的。

代码语言:javascript
复制
const [session, setSession] = useState<Session|null>(null);  

额外的括号和空格是由您的编辑器添加的。例如,VSCode就是这样做的。

上面的语句意味着session是一个状态变量,可以是Sessionnull类型。然后用值null初始化它。

下面是一个链接,可以帮助您在useState中使用TS。

票数 7
EN

Stack Overflow用户

发布于 2022-08-16 05:06:18

您在useState中有错误,请尝试下面的代码

代码语言:javascript
复制
const [session, setSession] = (useState <Session | null>(null);  // updated here <Session | null> 

是打字本中使用的接口,如果您不理解,请轻松使用删除接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73368947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档