Topics:
- React Router
- Using Link and NavLink to navigate to specific routes
- Passing Route Parameters
- Passing props to components rendered by the Router
NOTE
-
Fork this repository, then clone your fork.
-
NOTE You have 2 servers that you will be running here so read these instructions carefully.
-
In the root of this directory: Run
npm installto download dependencies. -
Run the server using
npm startornode server.js. (Don't worry too much about this process, you'll get used to doing this and it will be explained more in the future). -
In a separate terminal cd into the
clientfolder and runnpm installto download dependencies. -
Still inside the
clientfolder runnpm startto run the client application. -
Once your application is up and running on the client, you should see a browser window that looks like this at
localhost:3000
- Wrap your app with the router.
- Inside your App file add two routes.
- one route for
/that loads theMovieListcomponent. - one route that will take an
idparameter after/movies/(ex:/movies/2,/movies/3where the id is dynamic). This route should load theMoviecomponent.
- one route for
- Make it so that the card in
MovieListis a link, this should direct the user to the/movies/{id of movie here}URL, where:idis the id of the individual movie. - When a user clicks on a movie card they should be taken to
/movies/{id of movie here}to see the details for the selected movie. - You will need to modify line 13 of
Movie.jsin order to accept the correct id for the movie selected. - Add functionality so the
Homebutton on theSavedListcomponent navigates back to home. - You should now be able to navigate back and forth between the individual movies and the home screen.
If you have completed Parts 1 & 2 feel free to move on to these stretch goals.
- You may notice that we are using essentially the same exact JSX code in the
Moviecomponent and theMovieDetailscomponent inMovieList.jscreate a new component inMovieCard.jsthat returns this JSX code. Then remove the old code fromMovieandMovieDetailsand instead return the newMovieCardcomponent.
- You will notice there is a 'Saved Movies' component that we are not currently using. In this step you will add the functionality to save a movie. You will need to pass the
addToSavedListfunction to theMoviecomponent. Once you have done that you will need to add a click handler to the save button. You will need to uncomment lines 24-27 inMovie.jsto complete this.
- Your list of saved movies should be links to the movie itself. Study and understand what the
saveMoviefunction is doing.
- Navlink
