• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

Could not find "store" in the context of "Connect(AuthForm)"

21.10.05 18:38 작성 조회수 442

1

안녕하세요.

강의 잘듣고 있습니다.

이제 redux에 들어가려고 하는데 아래 부분에서 딱 걸리네요.

windows에서 개발 중입니다.

========================

export default AuthForm;

에서 아래로 변경시 

========================

export default connect(mapStateToProps, mapDispatchToProps)(AuthForm);

아래 처럼 오류가 발생합니다

========================

Could not find "store" in the context of "Connect(AuthForm)". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to Connect(AuthForm) in connect options.

무엇이 문제일까요??

답변 1

답변을 작성해보세요.

0

민정아빠류동수님,

안녕하십니까. 지식공유자 Wintho입니다.
답변이 늦어져 죄송합니다. 해당 문제가 해결되지 못해 진도 진행에 이슈가 있었다면 양해의 말씀 드립니다.

해당 문제는 App Component를 Provider로 감싸지 않아서 발생하는 오류입니다. Provider는 action을 dispatching하거나 state data를 받기 위해 store에 접근할 수 있도록 도와줍니다. store와 provider가 해당 모듈로부터 제대로 import 되었는지 확인이 필요할 듯 합니다.


<index.js>

import React from 'react';
import {AppRegistry} from 'react-native';
import App from './app/index';
import {name as appName} from './app.json';

import { createStore, applyMiddleware, compose } from 'redux';
import { Provider } from 'react-redux';
import promiseMiddleware from 'redux-promise';
import reducers from './app/store/reducers';
import thunkMiddleware from 'redux-thunk';

const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;

const createStoreWithMiddleware = createStore(reducers, composeEnhancers(
applyMiddleware(promiseMiddleware, thunkMiddleware)
))

const appRedux = () => (
<Provider store={createStoreWithMiddleware}>
<App/>
</Provider>
)

AppRegistry.registerComponent(appName, () => appRedux);

 

감사합니다.