>  Q&A  >  본문

Next.js 13 오류 수정: React-redux 컨텍스트가 누락되었습니다. <Provider> 내에 구성 요소를 래핑하세요.

<p>redux의 데이터를 사용하고 싶지만 이 오류를 해결할 수 없습니다. 따라서 next.js 13에 애플리케이션 라우터가 있고 /settings/account에서 내 페이지에 액세스하려고 합니다. 내 파일 구조는 다음과 같습니다. </p> <pre class="brush:php;toolbar:false;">--앱 --설정 레이아웃.jsx page.jsx --계정 page.jsx 레이아웃.jsx</pre> <p>계정 페이지의 사용자 데이터에 액세스하고 싶습니다.</p> <pre class="brush:php;toolbar:false;">'react'에서 React 가져오기 'react-redux'에서 가져오기 { useSelector }; 기본 함수 AccountPage() 내보내기 { const {info: userInfo} = useSelector(state => state.user); const {이름, 아이디} = userInfo; console.log(이름, 아이디) 반품 ( <div>페이지</div> ) }</pre> <p>하지만 오류가 발생했습니다:<em>오류: React-redux 컨텍스트 값을 찾을 수 없습니다. 구성 요소가 공급자</em>에 래핑되어 있는지 확인하세요. 페이지를 감싸는 레이아웃을 사용하면 문제가 해결될 것이라고 생각하여 다음과 같이 했습니다. </p> <pre class="brush:php;toolbar:false;">layout.jsx "클라이언트 사용" "@/context/store"에서 { 매장 }을 가져옵니다. "react-redux"에서 { 제공자 }를 가져옵니다. 기본 함수 내보내기 AccountLayout({ children }) { 반품 ( <공급업체 스토어={스토어}> {어린이들} </공급자> ) }</pre> <p>안타깝게도 이는 도움이 되지 않습니다. 설정/계정 페이지와 설정 페이지의 레이아웃은 이름만 다를 뿐 동일합니다. - SettingsLayout(루트 레이아웃이 이 문제를 해결할 것이라고 생각했습니다). 설정 페이지는 코드가 없고 일반 HTML만 포함되어 있습니다. <code>App</code> 구성요소를 래핑하지 않고 이 문제를 어떻게 해결할 수 있나요? </p>
P粉269847997P粉269847997402일 전420

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

  • P粉515066518

    P粉5150665182023-08-17 11:47:45

    이것은 테스트된 방법입니다.

    애플리케이션 폴더 아래에 redux-provider.js라는 새 파일을 추가하세요

    으아악

    응용 프로그램 폴더 아래에 공급자.tsx라는 다른 파일을 추가하고 ReduxProvider를 구현하세요

    으아악

    layout.tsx 파일에 공급자 구현(앱 폴더의 직접 하위 구성 요소)

    으아악

    이제 다른 페이지에서도 스토어에 접근할 수 있습니다.

    업데이트

    네. 하지만! ReduxProvider에서 루트 구성 요소를 래핑한다고 해서 다른 모든 구성 요소가 클라이언트 구성 요소라는 의미는 아닙니다. 여전히 서버 구성 요소를 가질 수 있습니다. 어떻게 하나요?

    애플리케이션 폴더 아래에 Experiment라는 새 폴더를 추가한 다음, Experimental 폴더 아래에 page.tsx라는 새 파일을 추가합니다. 다른 파일에서 page.tsx 파일의 내용을 가져올 수 있습니다.

    /experimental/page.tsx

    으아악

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