Add mutliple contexts example

This commit is contained in:
Alex Krolick
2018-03-22 21:01:59 -07:00
parent 53d604fd3a
commit fec6d6c141
2 changed files with 39 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
// Create a theme context, defaulting to light theme
// highlight-next-line
const ThemeContext = React.createContext('light');
// Signed-in user context
const UserContext = React.createContext();
class App extends React.Component {
static propTypes = {
theme: PropTypes.string,
signedInUser: PropTypes.shape({
id: number,
name: string,
avatar: string,
}),
};
render() {
return (
<ThemeContext.Provider value={this.props.theme}>
<UserContext.Provider
value={this.props.signedInUser}>
<ThemeContext.Consumer>
{theme => (
<UserContext.Consumer>
{user => (
<ProfilePage user={user} theme={theme} />
)}
</UserContext.Consumer>
)}
</ThemeContext.Consumer>
</UserContext.Provider>
</ThemeContext.Provider>
);
}
}