React Native Alert - Complete Guide
Last update: 2025-04-24The Alert API in React Native is a crucial component for displaying important messages and gathering user feedback. In this quick win, we’ll explore how to effectively implement alerts in your React Native applications with practical examples.
Basic Alert Usage
The Alert API provides a simple way to show modal dialogs to users. Here’s how to create basic alerts:
import { Alert } from 'react-native';
// Simple alert with one button
const showBasicAlert = () => {
Alert.alert('Welcome', 'This is a basic alert message', [
{
text: 'OK',
onPress: () => console.log('OK Pressed')
}
]);
};
Let’s break down the components of an Alert:
Alert.alert()
takes up to three parameters:- First parameter: The title (appears at the top)
- Second parameter: The message (main content)
- Third parameter: An array of buttons with their actions
Confirmation Dialogs
One common use case is confirmation dialogs that require user decisions:
const showConfirmDialog = () => {
Alert.alert(
'Confirm Action',
'Are you sure you want to delete this item?',
[
{
text: 'Cancel',
onPress: () => console.log('Cancel Pressed'),
style: 'cancel'
},
{
text: 'Delete',
onPress: () => console.log('Delete Pressed'),
style: 'destructive'
}
],
{ cancelable: false }
);
};
This example demonstrates:
- Multiple buttons with different styles
- The
cancelable
option prevents dismissal by tapping outside - The
style
property can be ‘default’, ‘cancel’, or ‘destructive’ - Button order follows platform conventions automatically
Platform-Specific Customization
React Native Alert adapts to platform conventions automatically. Here’s how to customize for each platform:
import { Alert, Platform } from 'react-native';
const showPlatformSpecificAlert = () => {
Alert.alert(
'Platform Alert',
'This alert adapts to your platform',
Platform.select({
ios: [
{
text: 'Cancel',
style: 'cancel'
},
{
text: 'OK',
style: 'default'
}
],
android: [
{
text: 'OK',
style: 'default'
},
{
text: 'Cancel',
style: 'cancel'
}
]
})
);
};
Key points about platform differences:
- iOS buttons are right-aligned
- Android buttons are left-aligned
- Button order is reversed between platforms
- Styling options vary slightly between platforms
Practical Component Example
Here’s a complete example of a delete confirmation component:
import React from 'react';
import { View, Button, Alert, StyleSheet } from 'react-native';
const DeleteConfirmation = ({ itemId, onDelete }) => {
const handleDeletePress = () => {
Alert.alert(
'Delete Item',
'This action cannot be undone. Are you sure?',
[
{
text: 'Cancel',
style: 'cancel',
onPress: () => console.log('Delete cancelled')
},
{
text: 'Delete',
style: 'destructive',
onPress: () => {
onDelete(itemId);
console.log('Item deleted:', itemId);
}
}
],
{ cancelable: true }
);
};
return (
<View style={styles.container}>
<Button title="Delete Item" onPress={handleDeletePress} color="#ff3b30" />
</View>
);
};
const styles = StyleSheet.create({
container: {
padding: 16
}
});
export default DeleteConfirmation;
This component showcases:
- Proper component structure with props
- Handling user confirmation before deletion
- Styled button with appropriate color
- Cancelable alert with clear actions
Advanced Alert Patterns
1. Three-Button Alert
Sometimes you need more than two options:
const showThreeButtonAlert = () => {
Alert.alert('Save Changes', 'Would you like to save your changes?', [
{
text: "Don't Save",
style: 'destructive',
onPress: () => console.log('Changes discarded')
},
{
text: 'Cancel',
style: 'cancel',
onPress: () => console.log('Dialog cancelled')
},
{
text: 'Save',
style: 'default',
onPress: () => console.log('Changes saved')
}
]);
};
This pattern is useful for:
- Save dialogs
- Multiple choice decisions
- Complex user interactions
- Providing cancel options
2. Chained Alerts
You can chain alerts for multi-step confirmations:
const showChainedAlert = () => {
Alert.alert('Logout', 'Are you sure you want to logout?', [
{
text: 'Cancel',
style: 'cancel'
},
{
text: 'Logout',
style: 'destructive',
onPress: () => {
Alert.alert('Confirm', 'All unsaved changes will be lost', [
{
text: 'Stay',
style: 'cancel'
},
{
text: 'Proceed',
onPress: () => console.log('Logged out')
}
]);
}
}
]);
};
Chained alerts are perfect for:
- Multi-step confirmations
- Important destructive actions
- Complex decision trees
- User flow validation
Best Practices
- Clear Messages: Use concise, clear language in titles and messages
- Consistent Styling: Maintain consistent button styles across your app
- Platform Awareness: Respect platform conventions for button order
- Error Handling: Always provide a way to cancel or exit the alert
- Action Clarity: Make button actions clear and unambiguous
Common Use Cases
- Confirmation dialogs
- Error messages
- Success notifications
- Warning alerts
- Permission requests
- Save prompts
- Logout confirmations
Summary
React Native Alert is a powerful tool for user interaction in your mobile apps. By following these patterns and best practices, you can create intuitive and effective alert dialogs.
Remember to:
- Keep messages clear and concise
- Follow platform conventions
- Provide appropriate actions
- Handle user interactions properly
- Use consistent styling
Now you’re ready to implement professional alert dialogs in your React Native apps! 🚀