Как получить идентификатор пользователя в моем компоненте, чтобы иметь возможность отправлять на действие - PullRequest
0 голосов
/ 22 марта 2020

Я хочу показать фид пользователя и его сообщения. Я планирую отправить действие из componentDidMount компонента UserPosts, но пока не имею идентификатора. Компонент выглядит следующим образом:

import React, { Component } from "react"
import { getUserposts } from "../actions/userActions"

class UserPosts extends Component {

  componentDidMount() {
    //////
  }

  render() {
    return (
      <div className="card">
        <div className="card-content">
          <div className="media">
            <div className="media-left">
              <figure className="image is-48x48">
                <img
                  src="https://bulma.io/images/placeholders/96x96.png"
                  alt="Placeholder image"
                />
              </figure>
            </div>
            <div className="media-content">
              <p className="title is-4"></p>
              <p className="subtitle is-6"></p>
            </div>
          </div>

          <div className="content">Insert Bio</div>
        </div>
      </div>
    )
  }
}

export default UserPosts

и действие выглядит так:

export const getUserposts = (id) => {
    return async dispatch => {
      dispatch({
        type: "FETCHING_POSTS",
      })
      try {
        const res = await axios.get(
          `http://localhost:3000/api/v1/users/posts/${id}`, {
            headers: {
              "Content-Type": "application/json"
            }
          }
        )
        dispatch({
          type: "FETCHING_POSTS_SUCCESS",
          data: res.data
        })
      } catch(err) {
        dispatch({
          type: "FETCHING_POSTS_ERROR",
          data: { error: res.data.error}
        })
      }
    }
  }

Теперь, как мне получить идентификатор? У меня есть маршрут, который дает мне текущего вошедшего в систему пользователя. Это маршрут /me. Я установил поверх своего App.js, поэтому он работает на каждом рефре sh. Итак, можно ли сначала отправить маршрут /me, получить идентификатор, а затем отправить его снова для действия getUserPosts. Как отправить два действия из componentDidMount?

Возможно ли это.

componentDidMount() {
   const authToken = localStorage.getItem("authToken");
   this.props.dipsatch(getCurrentUser(authToken)) // this will return the current user object
   this.props.dispatch(getUserPosts(id)) // i will probably get this id from the props from the 
                                            //redux store
}

Please tell how can I approach this? Thanks.
...