발전기에 https://github.com/stylesuxx/generator-react-webpack-redux을 사용하고 있으며 핫 로더를 사용하고 있습니다. 내 코드는 브라우저에서 정상적으로로드 할 수 있지만 브라우저에서 개발 패널을 열 때, 내 client.js
코드는 다음과 같습니다에서반응 로더 :이 구성 요소는 핫 로더에서 허용되지 않습니다.
React Hot Loader: this component is not accepted by Hot Loader.
Please check is it extracted as a top level class, a function or a variable.
Click below to reveal the source location:
ƒ (props, context, updater) {
// This constructor gets overridden by mocks. The argument is used
// by mocks to assert on what gets mounted.
if (process.env.NODE_ENV !== 'production'…
발생 :
import React from 'react';
import ReactDOM from 'react-dom';
import { AppContainer } from 'react-hot-loader';
import { Provider } from 'react-redux';
import { Router, IndexRoute, Route, browserHistory, hashHistory } from 'react-router';
import App from './containers/App';
import configureStore from './stores';
import Contact from './containers/contact/Contact'
import Homepage from './containers/homepage/Homepage'
import About from './containers/about/About'
import Theme from './containers/themes/Themes'
import Login from './containers/login/Login'
import Signup from './containers/signup/Signup'
const store = configureStore();
const routes = {
path: '/',
indexRoute: {onEnter: (nextState, replace) => replace('/home')},
childRoutes: [
require('./containers/homepage').default,
require('./containers/themes').default,
require('./containers/contact').default,
require('./containers/about').default,
require('./containers/login').default,
require('./containers/signup').default,
{
path: '*',
indexRoute: { onEnter: (nextState, replace) => replace('/error/404') }
}
]
}
ReactDOM.render((
<Provider store={store}>
<Router onUpdate = {() => window.scrollTo(0, 0)}
history={hashHistory}
routes={routes}
/>
</Provider>
), document.getElementById('app'));
// if (module.hot) {
// module.hot.accept('./containers/App',() => {
// const NextApp = require('./containers/App').default; // eslint-
disable-line global-require
//
// ReactDOM.render(
// <AppContainer>
// <Provider store={store}>
// <NextApp />
// </Provider>
// </AppContainer>,
// document.getElementById('app')
// );
// });
// }
을 어떻게해야 Hot Loader가 구성 요소를 받아들이도록 주석 처리 된 코드를 수정하십시오. 아래 코드를 시도했지만 작동하지 않습니다.
if (module.hot) {
module.hot.accept('./containers/App',() => {
const NextApp = require('./containers/App').default; // eslint-disable-line global-require
ReactDOM.render(
<AppContainer>
<Provider store={store}>
<Router onUpdate = {() => window.scrollTo(0, 0)}
history={hashHistory}
routes={routes}
/>
</Provider>
</AppContainer>,
document.getElementById('app')
);
});
}
작동 시키셨습니까? :) – Michal
아니오 = (나는 지금 그것을 무시하기로 결정했다 –
내 레포를 보아라. 당신은 아마도 서비스 노동자를 제거 할 필요가있을 것이다. 그것 이외에 그것은 당신의 프로젝트에 거의 완벽한 모양이다. 이 질문 나중에. – Michal