Ваш вариант не является хорошим решением проблемы, поскольку новые типы компонентов LoginWithProps и RegistrationWithProps будут создаваться при каждом рендеринге, то есть старые будут отключаться, а новые - каждый раз. То же самое происходит, когда вы передаете функцию, но без предупреждения
Нельзя передавать реквизиты на эти экраны, так как это не компонент Loading
, который является прямым родителем этих экранов. Если вы хотите передать данные для настройки этих компонентов, вам нужно сделать это с помощью параметров навигации двумя способами:
- при переходе к экрану
navigation.navigate('Login', { param: 'hello' })
- , указав начальный params
.
<Stack.Screen
name="Login"
component={Loaing}
initialParams={{ param: 'hello' }}
/>
И прочитайте его в Login
с props.route.params
Обратите внимание, что это называется initialParams по причине - они не реагирует, изменение их после установки компонента не имеет никакого эффекта (также возможно изменить их изнутри компонента). Если вы хотите передать реактивные параметры, используйте React Context или Redux
Передача параметров в маршруты