Meu aplicativo principal contém um NavigationContainer
que Drawer.Navigator
abriga seus Drawer.Screen
componentes.
Fora do Navigator
, tenho um componente de botão de ação flutuante que NavigationContainer
gostaria de renderizar condicionalmente com base no fato de a gaveta de navegação estar aberta.
const Drawer = createDrawerNavigator()
export default function App() {
return (
<NavigationContainer ...>
<Drawer.Navigator ...>
<Drawer.Screen ... />
<Drawer.Screen ... />
<Drawer.Screen ... />
</Drawer.Navigator>
<FloatingActionButton />
</NavigationContainer>
)
}
}
Como não posso usar useDrawerStatus
dentro do FloatingActionButton
componente porque o componente não é filho de Drawer.Navigator
(que não pode abrigar o botão em si, porque Navigator
só pode conter componentes Screen
, Group
e Fragment
), como posso ouvir o status da gaveta ou acessar seu estado aberto atual?
Use a propriedade screenListeners para ouvir o
state
evento e verificar sedrawer
está presente. Algo assim: