Skip to content

Instantly share code, notes, and snippets.

Created June 25, 2017 14:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/2bb6da98703aada60da03d6a93a5dd42 to your computer and use it in GitHub Desktop.
Save anonymous/2bb6da98703aada60da03d6a93a5dd42 to your computer and use it in GitHub Desktop.
No puedo obtener parametros de la URL
Error que se muestra en el browser
15 | componentDidMount(){
> 16 | const url = `http://localhost:5000/api/posts/${this.props.params.id}`;
17 | axios.get(url)
18 | .then((response) => {
19 | console.log(response.data);
Código fuente del component
import React, {Component} from 'react';
import axios from 'axios';
import {Well, Button} from 'react-bootstrap';
import {Link} from 'react-router-dom';
export default class PostDetail extends Component{
constructor(props, context){
super(props, context);
console.log(props);
this.state = {
post: {}
}
}
componentDidMount(){
const url = `http://localhost:5000/api/posts/${this.props.params.id}`;
axios.get(url)
.then((response) => {
console.log(response.data);
this.setState({
post: response.data
})
})
.catch((error) => {
console.log(error);
})
}
render(){
const {post} = this.state;
return (
<div>
<h2 className="text-center text-muted">{post.title}</h2>
<Well>
{post.content}
<hr/>
<Link to='/posts'>
<Button block bsStyle="warning">Volver al listado</Button>
</Link>
</Well>
</div>
)
}
}
Código fuente del archivo index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import 'bootstrap/dist/css/bootstrap.css';
import './index.css';
import Login from './Components/Login';
import Register from './Components/Register';
import Profile from './Components/Profile';
import PostList from './Components/Posts/PostList';
import PostDetail from './Components/Posts/PostDetail';
import { BrowserRouter as Router, Route, Link } from 'react-router-dom';
ReactDOM.render(
<Router>
<div>
<Route path="/" component={App} />
<Route path="/login" render={() => (
!!localStorage.user ? (<Route component={Profile}/>) : (<Route component={Login}/>)
)}/>
<Route path="/register" render={() => (
!!localStorage.user ? (<Route component={Profile}/>) : (<Route component={Register}/>)
)}/>
<Route path="/profile" render={() => (
!!localStorage.user ? (<Route component={Profile}/>) : (<Route component={Login}/>)
)}/>
<Route path="/posts" render={() => (
!!localStorage.user ? (<Route component={PostList}/>) : (<Route component={Login}/>)
)}/>
<Route path='/post/:id' component={PostDetail} />
</div>
</Router>,
document.getElementById('root')
);
Código del componente PostDetail.js
import React, {Component} from 'react';
import axios from 'axios';
import {Well, Button} from 'react-bootstrap';
import {Link} from 'react-router-dom';
export default class PostDetail extends Component{
constructor(props, context){
super(props, context);
console.log(props);
this.state = {
post: {}
}
}
componentDidMount(){
const url = `http://localhost:5000/api/posts/${this.props.params.id}`;
axios.get(url)
.then((response) => {
console.log(response.data);
this.setState({
post: response.data
})
})
.catch((error) => {
console.log(error);
})
}
render(){
const {post} = this.state;
return (
<div>
<h2 className="text-center text-muted">{post.title}</h2>
<Well>
{post.content}
<hr/>
<Link to='/posts'>
<Button block bsStyle="warning">Volver al listado</Button>
</Link>
</Well>
</div>
)
}
}
El problema se presenta cuando intento acceder la url:
http://localhost:3000/post/594e4a9945670e029174cc24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment