Creating the Movie Component
Learn how to render data retrieved from the backend in React.
We'll cover the following...
We'll cover the following...
In this lesson, we’ll create a Movie component that will display the individual movie and its reviews:
import axios from "axios";
class MovieDataService{
getAll(page = 0){
return axios.get(`{{EDUCATIVE_LIVE_VM_URL}}:3000/api/v1/movies?page=${page}`)
}
get(id){
return axios.get(`{{EDUCATIVE_LIVE_VM_URL}}:3000/api/v1/movies/id/${id}`)
}
find(query, by = "title", page = 0){
return axios.get(`{{EDUCATIVE_LIVE_VM_URL}}:3000/api/v1/movies?${by}=${query}&page=${page}`)
}
createReview(data){
return axios.post("{{EDUCATIVE_LIVE_VM_URL}}:3000/api/v1/movies/review", data)
}
updateReview(data){
return axios.put("{{EDUCATIVE_LIVE_VM_URL}}:3000/api/v1/movies/review", data)
}
deleteReview(id, userId){
return axios.delete("{{EDUCATIVE_LIVE_VM_URL}}:3000/api/v1/movies/review",
{data:{review_id: id, user_id: userId}}
)
}
getRatings(){
return axios.get("{{EDUCATIVE_LIVE_VM_URL}}:3000/api/v1/movies/ratings")
}
}
export default new MovieDataService()
Initial files we will build on
In the components folder in the movie.js file, fill in the following code:
Lines 7–12: We have a movie state variable to hold the specific movie we’re currently showing in the Movie component. We set its initial values to null, empty strings "", or an empty array [].
Lines 14–23: The getMovie() method calls the get() method of MovieDataService (in the ...