important
This is a contributors guide and NOT a user guide. Please visit these docs if you are using or evaluating SuperTokens.
React
#
General adviceRemember to add the JSX pragma and import
Prefer adding components as
const X: React.FC<PropType> = (props) => {...}
instead of a function returningJSX.Element
When using
useEffect
:- If it depends on certain variables inside an object, do not make that object a dependency in the array. Instead, extract the variable from the object before the use effect, and put that variable in the dependency array.
- If you want it to run it just once (similar to
componentDidMount
), provide it an empty dependency array. - If applicable, make sure to return a function that runs in case the dependency array has changed (or the component is unmounting). In this function, you can tell the
useEffect
logic to not change state for example (in case there is anasync / await
operation happening in it.)
Refrain from returning a component from a function. Instead, make that function itself a functional component. This will prevent that component from unmounting and mounting during rerenders. If you must return a component from a function, then the consumer of that function should use
useRef
oruseMemo
.