• 카테고리

    질문 & 답변
  • 세부 분야

    블록체인

  • 해결 여부

    미해결

module not found.

19.11.18 10:48 작성 조회수 134

1

store.js 에서 import 한 history 경로를 찾지 못하는 이슈가 있네요. 제 PC 내 createBrowserHistory.js 모듈은 Ganache 설치시 생성된 파일 뿐이고 해당 파일은 /src 밖의 Global 경로라 접근 안되네요. 혹시 다른 모듈인지 확인 부탁 드립니다.

답변 1

답변을 작성해보세요.

0

history 패키지는 react-router와 함께 설치되는 패키지입니다. react-router(또는 react-router-dom)은 실습화면에서 메뉴를 구성하기 위해 사용합니다. 강좌가 만들어졌던 시점이 지난 터라 현재 버전의 패키지를 설치하면 drizzle 처럼(@drizzle/react와 drizzle-react처럼) 변경된 사항들이 다수 발생합니다.

일단 app 디렉토리에서 react-router-dom을 설치하십시오.

npm install react-router-dom 

그리고 App.js에서 다음과 같이 import 하십시오.

import { BrowserRouter as Router } from 'react-router-dom';

그리고 원래 있던 import { Router } from 'react-router'; 은 삭제하십시오.

import store, {history} from "./store"; 에서 history를 삭제하고 store만 import 하십시오. 그렇게 되면 

 <Router history={history}> 에서 history 속성은 제거해도 됩니다. react-router-dom의 BrowserRouter로 동일한 결과를 얻을 수 있습니다. 

그 다음에 store.js는 다음과 같이 수정하십시오.

import { createStore, applyMiddleware, compose } from 'redux'
import createSagaMiddleware from 'redux-saga'
import { generateContractsInitialState } from 'drizzle'
import drizzleOptions from './drizzleOptions'
import reducer from './reducer'
import rootSaga from './rootSaga'

const sagaMiddleware = createSagaMiddleware()

const initialState = {
    contracts: generateContractsInitialState(drizzleOptions)
}

const store = createStore(
    reducer,
    initialState,
    compose(
        applyMiddleware(
            sagaMiddleware
        )
    )
)

sagaMiddleware.run(rootSaga)

export default store

routingMiddleware는 필요가 없으므로 그냥 제거한 것입니다. 

그리고 Home.js에서는 react-router-dom 에서 Route와 Link 모듈을 참조하면 됩니다. import { Route } from 'react-router'은 삭제합니다.

import { Route, Link } from 'react-router-dom'