-
Notifications
You must be signed in to change notification settings - Fork 263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Doesnt work with react-navigation/native #195
Comments
Yep, having the same issue! What you could do for now is to place it on the screen itself. Not the nicest way of implementing, but that is what I do for now. |
Works perfectly for me on Android using Expo with:
|
Are you all on Expo? I'm running on Expo and having issues as well with React Native Navigation. |
Could you post your code? |
In my ...
import Toast from 'react-native-toast-message'
...
const App = () => {
...
return (
<AuthContext.Provider value={authContext}>
<NavigationContainer>
{isConnected ? (
<Drawer.Navigator initialRouteName="Home" drawerContent={props => (
<CustomDrawer props={props} signOut={signOut} />
)} >
<Drawer.Screen name="Home" component={MainStackNavigator} options={{ title: "Accueil" }} />
<Drawer.Screen name="MyOrders" component={MyOrdersStackNavigator} options={{ title: "Mes commandes" }} />
<Drawer.Screen name="MyReservations" component={MyReservationsStackNavigator} options={{ title: "Mes réservations" }} />
</Drawer.Navigator>
) : (
<Stack.Navigator initialRouteName="Login">
<Stack.Screen name="Login" options={{ title: "Connexion" }}>
{({ navigation }) => <LoginScreen navigation={navigation} setConnected={setConnected} />}
</Stack.Screen>
<Stack.Screen name="Register" component={RegisterScreen} options={{ title: "Inscription" }} />
</Stack.Navigator>
)}
<Toast ref={(ref) => Toast.setRef(ref)} />
</NavigationContainer>
</AuthContext.Provider>
);
}; And in my ...
import Toast from 'react-native-toast-message'
...
const HomeScreen = ({ route, navigation }) => {
const { toastType, toastExtra } = route.params;
// Toast notifications
useEffect(() => {
if (toastType === "order_success_takeout") {
Toast.show({
text1: `Commande n°${toastExtra.id}`,
text2: 'Votre commande à emporter a été envoyée avec succès.'
});
}
if (toastType === "order_success_eatin") {
Toast.show({
text1: `Commande n°${toastExtra.id}`,
text2: 'Votre commande sur place a été envoyée avec succès.'
});
}
if (toastType === "reservation_success") {
const date = new Date(toastExtra.date);
Toast.show({
text1: 'Réservation confirmée',
text2: `Réservation d'une table de ${toastExtra.table_.place} ${toastExtra.table_.place > 1 ? "places" : "place" }, pour le service de ${toastExtra.service.startTime}h-${toastExtra.service.endTime}h le ${date.getDate().toString().padStart(2, '0')}/${(date.getMonth() + 1).toString().padStart(2, '0')}/${date.getFullYear()}.`
});
}
});
return (
...
);
}; Exactly as explained here https://github.com/calintamas/react-native-toast-message#how-to-render-the-toast-when-using-react-navigation and I have no problem |
I don't know if this may help, but it didn't work for me because I placed the Toast element above my screens. <NavigationContainer>
{...}
<Toast ref={(ref) => Toast.setRef(ref)} />
</NavigationContainer> and not <NavigationContainer>
<Toast ref={(ref) => Toast.setRef(ref)} />
{...}
</NavigationContainer> |
@charlotteisambert This did actually help! Woah, thank you.. It works perfectly now. |
maybe this can help, I just removed React.useEffect(() => {
Toast.show({
text1: 'Hello',
text2: 'This is some something 👋'
});
}, []); changed to Toast.show({
text1: 'Hello',
text2: 'This is some something 👋'
}); I was getting this error before
|
I can verify, placing |
I can use Toast inside navigation with this. But not outside of it. Is there a way to run it both inside and outside of Navigation Container. |
@shlok-ps yes, you can render it alongside RootNavigator, like so function App() {
return (
<>
<RootNavigator />
<Toast ref={(ref) => Toast.setRef(ref)} />
</>
)
} |
This is actually the solution, if someone has time please add this as a note to the repo readme.md ;) |
Updated the phrasing in the readme, commit 1b5d936. I think it should be fine now. |
Hey @calintamas ! When we use a modal navigation, the toast appears below the view. We are following your recommendation, no luck. Any idea? Thank you! EDIT Ok, I found why and maybe this could help to more people. To get the toast correctly working when you are using modals to navigate, the presentation prop must be:
If you use another type (modal, fullScreenModal or transparentModal), iOS will place the new modal above everything, including your awesome toast. |
can confirm the toast is hidden behind status bar using the recommended approach. It is also visible for some reason instead of being hidden. This is a bare react native with expo unimodules and react navigation. EDIT: Can confirm it works by putting it under the root navigation component (in the bottom) instead of the container from the initial entry at App.tsx
|
Make sure to render the Toast outside the SafeAreaView component. In your case, return (
<>
<SafeAreaView style={styles.container}>
<StatusBar />
<UserNavigation />
</SafeAreaView>
<Toast ref={(ref) => Toast.setRef(ref)} /> {/* ref is not needed when using v2 /*}
</>
); |
Closing as the docs have been updated for v2. If there are any other issues, feel free to re-open |
Thank you! |
This worked for me. |
The toaster doesnt appear when using
@react-navigation/native
lib. Have followed as shown in https://github.com/calintamas/react-native-toast-message#how-to-render-the-toast-when-using-react-navigationI have placed
<Toast/ >
as last element inside<NavigationContainer>....</NavigationContainer>
.Any one else having same issue?
The text was updated successfully, but these errors were encountered: