찾다

 >  Q&A  >  본문

'{}' 유형에 '' 속성이 없습니다.

내 로그인 페이지에 대한 컨텍스트 후크를 설정하려고 합니다. 저는 타이프스크립트를 사용하고 있습니다. 컨텍스트 후크를 시작했지만 유형 선언에 문제가 있습니다. setUser를 사용하려고 하면 다음 오류가 나타납니다. 속성 'setUser'가 '{}' 유형에 존재하지 않습니다.

이것은 지금까지의 내 컨텍스트 후크입니다.

으아아아

제 로그인 코드입니다.

import { createContext, ReactNode, useEffect, useState } from "react"

interface Props {
    children?: ReactNode
}


export const UserContext = createContext({})

export function UserContextProvider({children}: Props) {
    const [user, setUser] = useState(null)
    return (
        <UserContext.Provider value={{user, setUser}}>
            {children}
        </UserContext.Provider>
    )
}

P粉615829742P粉615829742233일 전349

모든 응답(1)나는 대답할 것이다

  • P粉998100648

    P粉9981006482024-03-27 00:40:12

    사용자 정의 속성이 없는 빈 개체인 UserContext 变量指定类型。因为您在 createContext 中为其指定了 {} 参数,所以 Typescript 假定上下文的类型为 React.Context<{}>。因此,当您尝试使用上下文对象时,您会得到一个 {}에는

    가 필요합니다.

    먼저 새 인터페이스를 정의하겠습니다. 원하는 경우 직접 입력해도 됩니다.

    으아아아 UserContext

    유형을 선언하려면 다음을 수행하세요.
    1. 유형과 일치하는 기본값 제공
    2. 으아아아
    3. 기본 컨텍스트 값을 빈 개체/null로 설정
    4. 으아아아
    5. 빈 객체의 유형 변환(형 안전성이 좋지 않음)
    6. 으아아아
    7. Non-null 어설션(형 안전성이 좋지 않음)
    8. 으아아아

    이 중 일부의 경우 나중에 null 검사를 작성해야 합니다. 자세한 내용은 여기

    를 참조하세요. 🎜

    회신하다
    0
  • 취소회신하다