tve*_*his 6 javascript reactjs react-router
我正在学习React和React Router.我使用创建了一个应用程序create-react-app,热重新加载工作正常,直到我开始使用react-router-dom.
这是我的package.json:
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"bulma": "^0.7.2",
"react": "^16.6.0",
"react-dom": "^16.6.0",
"react-router-dom": "^4.3.1",
"react-scripts": "2.0.5"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}
Run Code Online (Sandbox Code Playgroud)
index.js:
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter as Router } from 'react-router-dom';
import App from './components/App/App';
const render = () => {
ReactDOM.render(
<Router>
<App />
</Router>,
document.getElementById('root')
);
};
render();
if (module.hot) {
module.hot.accept('./components/App/App', () => {
render();
});
}
Run Code Online (Sandbox Code Playgroud)
App.js:
import ...
const Home = () => (
<div>
<p className="is-size-1">Home</p>
</div>
);
class App extends Component {
render() {
return (
<Switch>
<Route path="/" exact component={Home} />
<Route path="/guests" exact component={TodaysGuests} />
</Switch>
);
}
}
export default App;
Run Code Online (Sandbox Code Playgroud)
将我的应用程序封装在BrowserRouter组件中后,热重新加载不再有效.我必须重新启动服务器才能看到任何更改.刷新页面不起作用.
热重装可能吗?是否使用了react-hot-loader必要的东西?
尝试使用以下内容更新您的index.js:
import ...
ReactDOM.render(
<Router>
<App />
</Router>,
document.getElementById("root")
)
if (module.hot) {
module.hot.accept("./App", () => {
ReactDOM.render(<Router><App /></Router>, document.getElementById("root"))
})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |