反応したネイティブアプリにメイン画面が読み込まれる前に非アニメーションモーダルを表示しようとしています。基本的には、ユーザーがログインしているかどうかをチェックし、ログインしていないユーザーの場合はモーダル表示でログイン画面を表示します。反応ネイティブアプリでメイン画面を読み込む前にモーダルを表示
モーダルが最初に表示されるのではなく、モーダルの前に分割されたときにメイン画面が表示されます。私は一般的に反応する/新しいjavascriptで、これを解決する方法がわからない。
コンポーネントが画面にレンダリングされる前に発生すると考えて、ログインチェックをcomponentWillLoadに配置しましたが、動作しないようです。 onAuthStateChanged
通話がasynchronous
であり、それが完了するのを待つことはありません反応するので、それは一瞬のために表示されていると、それが上に移動
export default class MyClass extends Component {
state = {
modalVisible: false,
}
componentWillMount() {
// Check if a user is signed in
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
console.log("Signed in");
this.setState({modalVisible: false});
} else {
// No user is signed in.
console.log("Not signed in");
this.setState({modalVisible: true});
}
}.bind(this));
}
render() {
return (
<View>
<NavigatorIOS
initialRoute={{
component: Things,
title: 'MyScene',
}}
style={{flex: 1}}
/>
<Modal
animationType={"none"}
transparent={false}
visible={this.state.modalVisible}
onRequestClose={() => {alert("Modal has been closed.")}}
>
<Login />
</Modal>
</View>
);
}
}
isFirebaseReturned = true
場合、私はあなたが、ログインが必要な場合は、あなたのモーダルコンポーネントをレンダリングし、正しくモーダルコンポーネントのスタイルを設定すべきだと思うレンダリングされます。つまり、(this.state.requireLogin)が(