다음과 같은 인증 컨텍스트 공급자가 있습니다. 사용자가 성공적으로 인증된 후 일부 토큰 값을 설정합니다
으아아아
홈 뷰에서 "loggedUserToken" 값을 사용하여 사용 가능한지 확인했습니다.
으아아아
"loggedUserToken"은 인증 공급자에서 설정하더라도 항상 비어 있습니다(인증 공급자에서 "setLoggedUserToken" 바로 다음에 콘솔에 인쇄하는 경우에도 마찬가지입니다). "setSession"이 올바르게 설정되면 다른 보기에서 값을 읽습니다.
여기에 무엇이 문제인지 잘 모르겠습니다
업데이트: 인증 공급자를 사용하는 방법은 다음과 같습니다. "Outlet"은 MainLayout의 다른 보기를 대체합니다.
으아아아
P粉2835590332023-09-22 11:31:13
해결책을 찾았습니다. 위의 오류는 내가 사용 중인 레이아웃으로 인해 발생합니다. 인증 보기(예: 로그인, 등록 등)에서 하나의 레이아웃을 사용하고 다른 보기(홈, 문의처 등)에서 다른 레이아웃을 사용하고 있습니다.
인증 컨텍스트 제공자로 개별적으로 캡슐화했습니다. 아래와 같이:
하지만 인증 컨텍스트 제공자를 App.js로 옮기자 제대로 작동했습니다. 내가 이해한 바에 따르면 인증 컨텍스트 공급자가 인증 레이아웃에서 기본 레이아웃(기본 레이아웃에서는 별도의 컨텍스트 공급자임)으로 이동할 때 재설정되는 것 같습니다. 하지만 컨텍스트 공급자를 최상위 수준(App.js)으로 이동했기 때문에 이제 모든 레이아웃에서 공통적으로 사용됩니다.