main
js 33 lines 878 Bytes
Raw
1 import React from 'react';
2 import {useContext} from 'react';
3 import {connect} from 'react-redux';
4
5 import ThemeContext from './shared/ThemeContext';
6 import lazyLegacyRoot from './lazyLegacyRoot';
7
8 // Lazy-load a component from the bundle using legacy React.
9 const Greeting = lazyLegacyRoot(() => import('../legacy/Greeting'));
10
11 function AboutPage({counter, dispatch}) {
12 const theme = useContext(ThemeContext);
13 return (
14 <>
15 <h2>src/modern/AboutPage.js</h2>
16 <h3 style={{color: theme}}>
17 This component is rendered by the outer React ({React.version}).
18 </h3>
19 <Greeting />
20 <br />
21 <p>
22 Counter: {counter}{' '}
23 <button onClick={() => dispatch({type: 'increment'})}>+</button>
24 </p>
25 </>
26 );
27 }
28
29 function mapStateToProps(state) {
30 return {counter: state};
31 }
32
33 export default connect(mapStateToProps)(AboutPage);