Javascript 使用react router键入url时无法访问url路由
只是尝试使用react router获得动态路由-但是当我键入url时,例如localhost:3000/5,我得到错误“cannot get/5”。我的路由器设置如下:Javascript 使用react router键入url时无法访问url路由,javascript,node.js,reactjs,express,react-router,Javascript,Node.js,Reactjs,Express,React Router,只是尝试使用react router获得动态路由-但是当我键入url时,例如localhost:3000/5,我得到错误“cannot get/5”。我的路由器设置如下: class App extends Component { render() { return ( <Provider store={store}> <ConnectedRouter history={history}>
class App extends Component {
render() {
return (
<Provider store={store}>
<ConnectedRouter history={history}>
<div>
<Route exact path="/" component={Home} />
<Route path="/:id" component={Profile} />
</div>
</ConnectedRouter>
</Provider>
);
}
}
ReactDOM.render(
<App />,
document.getElementById('root')
);
服务器:
require('./middleware')(app);
const people = [];
app.on('listening', () => {
controllers.getPeopleData(people);
});
app.get('/people', (req, res) => {
const sortedPeople = controllers.alphabetizePeople(people);
res.json(sortedPeople);
})
app.use(function(err, req, res, next) {
if (err) {
res.status(500).send(err);
console.log(err.message);
}
next();
});
app.listen(3000, () => {
app.emit('listening');
});
console.log('listening on 3000');
非常感谢您的任何意见-谢谢 如我所见,5没有定义。此错误是由于未在
路由器中声明此路由造成的。这是一个过程:
在.jsx中尝试,例如:indexRoutes.jsx:
import { Router, Route, browserHistory} from 'react-router';
import page5 from './your_route/5.jsx';
export default class Routes extends React.Component {
constructor() {
super()
}
render() {
return (
<Router history={browserHistory}>
<Route path="/5" component={page5}/>
</Router>
);
}
从'react Router'导入{Router,Route,browserHistory};
从“/your_route/5.jsx”导入第5页;
导出默认类路由扩展React.Component{
构造函数(){
超级()
}
render(){
返回(
);
}
完成此操作后,在“index.js”(项目的js根目录)中放入:
从“React”导入React;
从“react dom”导入react dom;
从“./routes/IndexRoutes.jsx”导入IndexRoutes;//此路由可能不同。请确保输入正确的索引。
//将主组件渲染到dom中
ReactDOM.render(,document.getElementById('idRoot');
现在,当您在浏览器中放入localhost:3000/5
时,您将看到在/your_route/5.jsx
中定义的组件。结果表明,my express server未配置为pushstate server。在服务器中的所有路由之后添加以下代码解决了此问题
app.get('*', function(request, response){
response.sendfile('./dist/index.html');
});
感谢您的回复。/:id不应该允许我去任何一条属于数字的路线吗?这是我的目标,但即便如此,如果我将:/id更改为5,(即
我不幸地在您的文件中(第一行)出现了相同的错误这是:从“./your_route/Profile.jsx”导入配置文件;我的代码中已经有了它-我也保留了所有导入内容,代码段简短:)
import React from 'react';
import ReactDOM from 'react-dom';
import IndexRoutes from './routes/IndexRoutes.jsx'; //this route could be diffentent. Make sure you put the correct.
// Render the main component into the dom
ReactDOM.render(<IndexRoutes/>, document.getElementById('idRoot'));
app.get('*', function(request, response){
response.sendfile('./dist/index.html');
});