You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
No caso, para a criação de componentes que serão telas, porque não podemos criar uma tipagem que contenha tudo que esse componente teria por padrão?
Futuramente, se houver uma migração de biblioteca de navegação, nós podemos utilizar a tipagem padrão para manipular as rotas, sem contar que seria padronizado os componentes
Toda vez que for criar um componente para ser uma tela, nós podemos utlizar essa tipagem para facilitar no desenvolvimento, até mesmo podemos declarar ela globalmente para evitar importar em todo arquivo:
declare global {interfaceScreen<Props={}>extendsReact.FunctionComponent<ScreenProps<Props>>{defaultProps?: ScreenProps<Props>;screenConfig?: ScreenConfig;}typeScreenProps<Props>={navigator?: NavigatorType;dispatch?: Dispatch;}&Props;}
Como usar?
Ela por padrão vai existir duas propriedades: navigator e dispatch.
import{View,Text}from'react-native'exportconstProfileScreen: Screen=({ dispatch, navigator })=>{return(<View><Text>Tela de Perfil</Text></View>);};
Podemos adicionar propriedades para esse componente, como por exemplo um account, que podemos adquirir através do redux.
import{View,Text}from'react-native'interfaceProfileScreenProps{account: {name: string;};}exportconstProfileScreen: Screen<ProfileScreenProps>=({ account })=>{return(<View><Text>Tela de Perfil: {account.name}</Text></View>);};
E no final, podemos configurar a configuração da tela e suas propridades padrões: