1
resposta

Como passar parametros (spreed operator) para um componente dentro do tab.screen

Opa tudo bem?

Estou com um problema de logica, após a implementação da aula não estou conseguindo passar os mocks para o componente, segue o trecho do código:

Antigo sem a navegação entre telas:

export default function AppRoutes() {
  return (
    <Servicos {...mock} />
  )
}

Novo

export default function AppRoutes() {
  return (
    <NavigationContainer>
    <Tab.Navigator >
      <Tab.Screen name={'Home'} component={Parceiros}/>
      <Tab.Screen name={'Servicos'} component={Servicos} />
    </Tab.Navigator>
  </NavigationContainer>
  )
}

Minha duvida é como vou passar os mocks, tentei dessas duas formas e não consegui:

<Tab.Screen name={'Servicos'} component={Servicos} initialParams={{...mock}} />

e

<Tab.Screen name={'Servicos'} component={Servicos {...mock}} />
1 resposta

Olá Rafael! Tudo bem?

Pelo trecho de código que você compartilhou, parece que você está tentando passar os mocks para o componente Servicos dentro do Tab.Screen. No entanto, você está tendo dificuldades para fazer isso funcionar.

Uma forma de passar os mocks como parâmetros para o componente Servicos é utilizando o initialParams no Tab.Screen. No entanto, a sintaxe que você utilizou não está correta. Em vez de utilizar o spread operator ({...mock}), você pode passar diretamente o objeto mock como valor do initialParams, dessa forma:

<Tab.Screen name={'Servicos'} component={Servicos} initialParams={mock} />

Dessa forma, o objeto mock será passado como parâmetro para o componente Servicos quando ele for renderizado dentro do Tab.Screen.

Espero que isso resolva o seu problema! Se tiver mais alguma dúvida, é só perguntar.

Espero ter ajudado e bons estudos!