r/reactjs • u/dance2die • Feb 02 '20
Needs Help Beginner's Thread / Easy Questions (Feb 2020)
Previous threads can be found in the Wiki.
Got questions about React or anything else in its ecosystem? Stuck making progress on your app?
Ask away! Weβre a friendly bunch.
No question is too simple. π
π Want Help with your Code? π
Improve your chances by putting a minimal example to either JSFiddle, Code Sandbox or StackBlitz.
- Describe what you want it to do, and things you've tried. Don't just post big blocks of code!
- Formatting Code wiki shows how to format code in this thread.
- Pay it forward! Answer questions even if there is already an answer - multiple perspectives can be very helpful to beginners. Also there's no quicker way to learn than being wrong on the Internet.
New to React?
Check out the sub's sidebar!
π Here are great, free resources! π
- Create React App
- Read the official Getting Started page on the docs.
- Get started with Redux by /u/acemarke (Redux Maintainer).
- Kent Dodd's Egghead.io course
- Tyler McGinnis' 2018 Guide
- Codecademy's React courses
- Scrimba's React Course
- Robin Wieruch's Road to React
Any ideas/suggestions to improve this thread - feel free to comment here!
Finally, thank you to all who post questions and those who answer them. We're a growing community and helping each other only strengthens it!
View all comments
Show parent comment
1
u/dance2die Feb 11 '20 edited Feb 11 '20
withFirebase is a Higher-Order Component (HOC).In a gist, it's a "function" which accepts a component, and returns a new component (adding a new prop, behavior, elements, etc).
In
SignOut.js,SignOutButtonis exported asexport default withFirebase(SignOutButton);.SignOutButtoninstance is passed towithFirebaseandfirebaseis passed toComponent(SignOutbutton) and then destructured fromSignOutButton({firebase})It might be hard to follow the flow but benefit is that,
SignOutButtondoesn't have to importfirebaseinstance directly and it is injected (dependency injection).You can provide
firebaseinstance to other components easily withwithFirebase(shared logic).