Я пытаюсь связать компонент блога с компонентом автора с помощью React-Router - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь создать довольно простой блог, но зацикливаюсь на маршрутах.

У меня есть компонент BlogPost, который отображает заголовок, контент, ссылку и раздел комментариев. Я пытаюсь использовать данные users, которые я получил с помощью axios, чтобы показать страницу с информацией о пользователях, но я борюсь с.

import React from 'react';
import {Comments} from './Comments';
import {Link} from 'react-router-dom';
import axios from 'axios';
//Pass down user data to Author to get latitude and longitude

export class BlogPost extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      posts: [],
      users: []
    }
  }
 componentDidMount() { 
  axios.all([
      axios.get(`https://jsonplaceholder.typicode.com/posts/${this.props.match.params.postId}`),
      axios.get(`https://jsonplaceholder.typicode.com/users`)])
      .then(axios.spread((posts, users) => {
        this.setState({ posts: posts.data, users: users.data})
        console.log(posts.data.title)
        console.log(users.data[0].id)
      }))
    }

  render() {
    return (
      <div className="blog-post">
      <img src="https://picsum.photos/300/300" alt="#"/>        
        <h1 className="blog-post-h1">{this.state.posts.title}</h1>
        <p className="blog-post-p">{this.state.posts.body}</p>
        <Link to={`/authors/`} params={ this.state.users } className="button">
        Author's Profile
        </Link> 
        <Comments />              
    </div>
    )
  }
}

class App extends React.Component {
  render() {
    return (
      <Router>
        <div className="container">
          <Nav />
          <Route exact path="/" component={ViewPreview} />
          <Route exact path="/posts/:postId" component={BlogPost} />
          <Route exact path="/authors/:userId" component={Author} />
        </div>
      </Router>
    )
  }
}

export default App;

1 Ответ

0 голосов
/ 08 мая 2018

Измените тег ссылки компонента BlogPost, как показано ниже.

<Link to={`/authors/${this.state.id_of_the_author}`} className="button">Author's Profile</Link>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...