Step 1.7 - Types and creating a UI-driven state (Exercise)
If you don't already have the app running, start it by running npm start from the root of the frontend-bootcamp folder. Click the "exercise" link under day 1 step 7 to see results.
TodoFooter
-
Open TodoFooter and write a
TodoFooterPropsinterface. It should include two values, aclearandtodos. Use this interface in the function props like this:(props: TodoFooterProps) -
Write an
_onClickfunction that callsprops.clear.
- Since TodoFooter is not a class, the
_onClickfunction needs to be stored in a const placed before thereturn. - Remember to use an arrow function to define this click handler.
-
Assign
_onClickto the button'sonClickprop. You won't need to usethissince the component isn't a class. -
Test out this functionality. Check a few todos complete and click the
Clear Completedbutton.
TodoHeader
-
Open TodoHeader and write
TodoHeaderPropswhich will includeaddTodo,setFilterandfilter. Replace the firstanyin the class declaration with this interface. -
This component also has state. Write
TodoHeaderState(there's just one value), and add this where the secondanywas. -
Add
_onFilterto each of the filter buttons
- Note that we can't add new parameters to onClick, but we can pull information from the event target!
- Remember to use an arrow function for this one too
-
Call
_onAddfrom the submit button -
Check out this new functionality! We can now add and filter todos!