Name | Definition | ​ |
​function component​ | React components created with a function() | ​ |
TypeScript support
Cons:
No SEO
Change public/index.html
: <title>
Change public/mainfest.json
Difficult and heavy
Requires relay-compiler
Requires exporting a schema from your graphql endpoint
​https://github.com/sw-yx/react-typescript-cheatsheet​
yarn create react-app my-app --typescript
​https://facebook.github.io/create-react-app/docs/adding-typescript​
No const enum
src/componentssrc/containerssrc/routes/EntriesRoute.tsx
await-useEffect.tsxfunction Render() {const [data, setData] = useState(null);const fetchData = async() => {const response = await fetch(`https://www.example.com/`);const json = await response.json();setData(json);};useEffect(() => { fetchData() });return <div>Test</div>}
Error:
Type error: Cannot assign to 'current' because it is a read-only property. TS2540
From GitHub comment​
By default if you create a ref with a
null
default value and specify its generic parameter you're signaling your intent to have React "own" the reference. If you want to be able to mutate a ref that you own you should declare it like so:
Solution:
Change useRef<T | null>(null)
to useRef<T>()
Use reactstrap
​