You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
639 B
28 lines
639 B
class Button extends React.Component {
|
|
componentDidMount() {
|
|
// highlight-next-line
|
|
// ThemeContext value is this.props.theme
|
|
}
|
|
|
|
componentDidUpdate(prevProps, prevState) {
|
|
// highlight-range{1-2}
|
|
// Previous ThemeContext value is prevProps.theme
|
|
// New ThemeContext value is this.props.theme
|
|
}
|
|
|
|
render() {
|
|
const {theme, children} = this.props;
|
|
return (
|
|
<button className={theme || 'light'}>
|
|
{children}
|
|
</button>
|
|
);
|
|
}
|
|
}
|
|
|
|
// highlight-range{3}
|
|
export default props => (
|
|
<ThemeContext.Consumer>
|
|
{theme => <Button {...props} theme={theme} />}
|
|
</ThemeContext.Consumer>
|
|
);
|
|
|