Modalが表示され、その上にアラートが表示されると、ユーザーが何もクリックしなくてもアラートがすぐに消えてしまうそれとモーダルはプログラムで削除されても画面から削除されません。 私はバグだと思っています。回避策はありますか?React Native:アラートが表示されたときにモーダルが非表示にならない
7
A
答えて
4
リアクションネイティブで問題があるようです。私もこの問題に出会った。それを修正する 最も簡単な方法は、モーダル後にタイムアウトして警告を呼び出すことです隠されている。 ... setTimeout(() => Alert.alert(msg), 10); ...
5
はい、私はそれが反応し、ネイティブのバグであるべきだと思います、私のコードは、反応ネイティブ0.33、後により正常に動作します0.37にアップグレードし、同じ問題に直面しました。
は、コンテンツ、次の反応ネイティブGitHubの問題で、私のコメントです:私は反応するネイティブ0.33から0.37にアップグレードした後、私は同様の問題に会った
:https://github.com/facebook/react-native/issues/10471#issuecomment-262450975、あなたを助けることができると思います。私はモーダルを閉じた後に警告ダイアログを表示したいが、警告ダイアログを閉じてcmd + R
を使ってアプリケーションをリロードしてもモーダルは消えない。 iOSでのみ有効で、反応ネイティブ0.33で正常に動作します。
コードは以下のお気に入り:
renderModal() {
return (
<Modal
animationType = 'fade'
transparent={true}
visible={this.state.isProcessing}
onRequestClose={()=>{}}>
<View style={styles.modalContainer}>
<LoadingSpiner size='large' color='white' styleAttr='Normal'/>
</View>
</Modal>
)
}
_pressNext() {
// display a Modal with a spinner
this.setState({isProcessing: true}}
// network request
// ...
}
componentWillReceiveProps(nextProps) {
// ...
// to hide the Modal with a spinner
this.setState({isProcessing: false})
Alert.alert('title', 'Something has done!', [
{ text: 'Got it', onPress:() => {} }
])
}
}
その後、私はそれを回避するためにsetTimeout
を使用しようと、コードは次のお気に入り:
componentWillReceiveProps(nextProps) {
// ...
// to hide the Modal with a spinner
this.setState({isProcessing: false})
setTimeout(() => {
// this log will output
console.log("show alert")
// but Alert doesn't display
// sometimes it will display occasionally
Alert.alert("title", "msg")
}, 200)
}
その後、モーダルが消え、しかし、警告ダイアログます表示することはできません!
私はまた、このように、setState
コールバックで実行setTimeout
を試してみました:
this.setState({isProcessing: false},() => {
setTimeout(() => {
Alert.alert("title", "msg")
}, 200)
}
が、同じ結果が、警告ダイアログがまだポップアップしません。
最後に、警告ダイアログを閉じた後、私はModalを非表示にすることにしました。コードは次のように好きです:
Alert.alert("title", "msg", [
{ text: "OK", onPress:() => { this.setState({ isProcessing: false } }
])
関連する問題
- 1. React-native flex - 表示要素が表示されない
- 2. キャプチャにアラートが表示されない
- 3. ボタンがクリックされたときモーダルが表示されない
- 4. モーダルが表示されているときにドロップダウンを表示しない
- 5. NavigationControllerがモーダル表示のUIViewControllerに表示されない
- 6. ポップアップが表示されたときにトップバーが非表示になる
- 7. アラートが表示されない
- 8. APN - アラートが表示されない
- 9. jqueryアラートが表示されない
- 10. アラートが表示されない - (void)alertView:clickedButtonAtIndex:method
- 11. アラートが表示されない
- 12. GeoFenceアラートが表示されない
- 13. React Native画像が表示されないAndroid
- 14. React Native:頻繁に呼び出すと警告メッセージが表示されない
- 15. チェックボックスがチェックされたときに表示されない非表示のdivブロックを表示するJquery
- 16. React-Native iosアプリケーションがクラッシュするとレポートが表示されない
- 17. トグル時にhtmlコントロールが表示/非表示にされない
- 18. iOS - [ObjC] NavigationBarButtonItemがナビゲーションバーのルートビューがモーダルで表示されているときに表示されない
- 19. ムービープレーヤーコントロールが表示/非表示になったときの通知?
- 20. React NativeBaseにインポートされたコンポーネントが表示されない
- 21. React HOCにラップされたコンポーネントが表示されない
- 22. React Bootstrapコンポーネントが表示されない
- 23. React Selectラベルが表示されない
- 24. React App:D3チャートが表示されない
- 25. Reactネイティブイメージが表示されない
- 26. viewWill React Nativeに表示
- 27. RefreshControlが非表示にならない
- 28. ボタンをクリックしたときに表のデータからモーダルが表示されないのはなぜですか?
- 29. プレースメント=本体の場合にモーダルがトリガーされると、ブートストラップのツールチップが非表示にならない
- 30. TortoiseSVNオーバーレイアイコンが表示されないときに表示されない
問題は、いつでも表示される可能性があり、開いているページに依存しないことです。アラートが厳密にモーダルの状態の知識に基づいて使用されている場合、この解決策はかなりの価値があります。 –