Using TypeScript 4, React 17 (current versions at the time I'm writing these lines).
Let say I have the following component.
This component is behind a React Navigation conditional stack navigator. This mean that if the user un-connect, the component will be automatically unmounted and the with the whole UI, showing the login screen instead.
This is managed by such code in the app's root navigator:
user ? (<RootStack.Screen name="Home" component={HomeScreen} />) : (<RootStack.Screen name="Login" component={LoginScreen} />)
Here is a component that print on the home screen.
I had some issues in another project and a friend of mine recommended to always put this un-mounting condition when a component un-mount with a risk of race condition.
I have some race conditions issues but adding un-mounting on all the components did not solved it so far.
Is my friend right that I shall continue to put these un-mounting or is it un-needed for such simple and synchronous cases as the following component?
interface Props { prop1: number}const MyFunctionalComponent: FC<Props> = ({prop1 = 0}: Props) => { const [stateVariable, setStateVariable] = useState<string>('initial value') useEffect(() => { let mounted = true if (mounted) { // We are synchronous, no await there. const newStateVariable: string = stringify(prop1) setStateVariable(newStateVariable) } return (): void => { mounted = false } }, [prop1]) return <Text>{ stateVariable }</Text>}
What do you use and know about this ?
Thanks