Welcome to part-4 of the series. You can find part-3 here.
This series is based on the youtube series by Brad Traversy and you can find it here.
We will start where we left by working on the Launch component. We will start by importing the required packages and using our graphql query for the single launch.
Next, we will first get the flight_number from the url. This we can do by this.props.match.params . Now this will return us Sting but we need integer for using it in our query, so we convert it by parseInt().
Next, we will use the LAUNCH_QUERY in our code by the same boiler plate as earlier in Launches component. But we are also passing variables flight_number to it. As usual we are first checking whether we are receiving the data from GraphQL by console logging it.
Now, in our website it will show the Object of data which we received from GraphQL when we goto a Lauch page.
Then we will de-structure the data and start showing it in the Launch component.
It will start to show in our web-page.
Now, let’s complete rest of the code to display rockets and a Back button.
Now, it will show as below.
Next, we will create a Navbar component because we will also show Rockets. We have already created Schema for the same in schema.js.
We have made the following changes in App.js. We had removed import for logo and also the img tag. Then we have created a Navbar component. Also, we have added a Route for /launches.
Next, create a file Navbar.js inside components folder. Here we are just using some bootstrap 4 classes to show a Navbar.
It will show our web-page as below.
Next, let’s add the code to display Rockets component in App.js
Next, we will create the Rockets component. Create a file Rockets.js inside components folder and the following data in it. It is almost similar to Launches component, only the query is different.
Let’s move to the Rockets page and check whether the data is coming.
As, we are getting the data we will create another file RocketItem.js to show the data. But first let’s update Rockets.js to loop through rockets array and pass each object to RocketItem component.
Next let’s create the file RocketItem.js inside components folder and the below content in it to display Rocket name and a button for Rocket Details.
Now, once we goto Rockets page, it will show as below.