2017-08-05 27 views
1

私はReact Nativeで新しく、Googleで検索しましたが、React Nativeの古いバージョンしか見つかりませんでした。ネイティブ渡し値に反応する

実は、私は状態の値が「のisValid」私が予定しております

を「真」になった場合tappage.jsにリダイレクトされます他のjsファイル 私はAuthpageを作っていますへの状態値を渡す方法を確認していませんApp.jsでこのようなページを変更してください。他の方法がある場合は、教えてください。

ありがとう、これは私のコードです。 AuthManager.js

export default class AuthPage extends Component { 
    constructor(props) { 
    super(props); 
    this.state = { 
     user     : null, 
     firebaseUser   : null, 
     fcmToken    : null, 
     accessToken    : null, 
     authType    : null, 
     hasInitialNotification : null, 
     isValid     : false 
    }; 
    this.unsubscribe = null; 

    } 

...some codes.. 


render() { 
    // if (!this.state.firebaseUser) { 
     return (
     <Provider store={store}> 
     <View style = {styles.main}> 


     <View style ={styles.logotemp}> 
     <Image style ={styles.logo} 
     source={require('../../resources/logo/logo.png')} 
     /> 

     </View> 

     <View style = {styles.inputid}> 


     <FormInput 
     ref={(el)=> {this.email = el;}} 
     textInputRef='email' 
     placeholder = "Email" 
     onChangeText={(email) => this.setState({email})} 
     value = {this.state.email} 
     /> 

     <FormInput 
     ref={(el)=> {this.password = el;}} 
     textInputRef='password' 
     onChangeText={(password) => this.setState({password})} 
     value = {this.state.password} 
     placeholder = "Password" 
     secureTextEntry = {true} 
     /> 
     <TouchableOpacity onPress={this._emailSignIn.bind(this)}> 
     <Image 
     style = {styles.loginbut} 
     source={require('../../resources/socialicon/signin.png')} 
     /> 
     </TouchableOpacity> 

     </View> 

     <View style = {styles.socialicons}> 
     <TouchableOpacity onPress={this._facebookSignIn.bind(this)} > 
     <Image 
     style={styles.fbicons} 
     source={require('../../resources/socialicon/facebook.png')} 
     /> 
     </TouchableOpacity> 
     <Image 
     style={styles.divider} 
     source = {require('../../resources/socialicon/divider.png')} 
     /> 

     <TouchableOpacity onPress={this._googleSignIn.bind(this)} > 
     <Image 
     style={styles.ggicons} 
     source={require('../../resources/socialicon/google.png')} 
     /> 
     </TouchableOpacity> 

     </View>  
     </View> 

     </Provider> 
    ); 
    // } 

    if (this.state.firebaseUser) { 
     return(
     <Provider store = {store}> 
     {store.isValid = this.state.isValid} 
     </Provider> 
    ); 
    } 
    } 

export default class MainPage extends Component { 
    constructor(props) { 
    super(props); 
    } 

    componentDidMount() { 

    } 



    render() { 
    alert(store.isValid); 
    if(!this.props.isValid){ 
     return(<View style={{flex:1}}> 

     <AuthPage></AuthPage> 

     </View> 


    ); 
    } 

    if(isValid){ 
    return(
     <View style={{flex:1}}> 

     <TabPage></TabPage> 

     </View> 
    ); 
    } 




    } 
} 

ありがとう!

答えて

1

Reactのイディオムは、現在の要素だけがその状態を知ることができるということです。 コンポーネント間のグローバルデータ転送にReduxを使用することを強くお勧めします。また、データを同期させる必要がない場合はAsyncStorageを使用できます。

関連する問題