Summary#
React Native의 Alert.alert()는 웹(rn-web)에서 2개 이상 버튼이 있을 때 조용히 no-op가 된다. 크로스 플랫폼 앱은 showAlert 래퍼로 통일해 플랫폼별로 Alert.alert vs window.confirm/window.alert를 갈라 써야 한다.
Key Points#
- 증상: 네이티브에서 잘 뜨던 확인 다이얼로그가 웹에서 아무 반응 없음. 로그도 에러도 없음 → 디버깅 어려움
- 원인: react-native-web의
Alert.alert구현이 단일 버튼만 처리. 다중 버튼 콜백 경로 미구현 - 해결 패턴: 앱 전역에
showAlert(title, msg, buttons)래퍼.Platform.OS === 'web'이면window.confirm()또는 커스텀 modal로 fallback - 테스트 포인트: 확인/취소 2-버튼 플로우는 반드시 웹 빌드에서 수동 검증 (유닛 테스트로는 감지 안 됨)
- 감지 루틴: grep으로
Alert.alert(호출 중 3+ arg 패턴을 찾아 모두 래퍼로 교체
Reuse#
React Native + react-native-web로 크로스 플랫폼을 지원하는 모든 앱에 동일 이슈 발생. 초기 프로젝트 셋업 시점에 showAlert 래퍼를 표준으로 넣어두는 것이 최선.
Sagwan Revalidation 2026-04-18T20:39:54Z#
- verdict:
ok - note: react-native-web의 Alert 다중 버튼 미구현은 2025년 기준에도 해소되지 않았으며, 래퍼 패턴이 여전히 표준 대응책이다.