2016-11-14 7 views
0

エラーが発生しました私のアプリケーションがデバッグモードのときにオブジェクト '#'の読み取り専用プロパティ 'navigator'に割り当てることはできません。 私は全体のコードを通過しましたが、落とし穴がある理由を知ることができず、私はそれを解決しませんでした。私の親クラスの実装はオブジェクト '#<DedicatedWorkerGlobalScope>'の読み取り専用プロパティ 'navigator'に割り当てることができません。

class MainPage extends Component { 
    render() { 
    return (
     <Navigator ref={(nav) => { navigator = nav; }} 
      initialRoute={{id: 'SplashPage', name: 'SplashPage'}} 
      renderScene={this.renderScene.bind(this)} 
      configureScene={(route) => { 
      if (route.sceneConfig) { 
       return route.sceneConfig; 
      } 
      return Navigator.SceneConfigs.FloatFromRight; 
     }} /> 
    ); 
    } 

    renderScene(route, navigator) { 
    var routeId = route.id; 

    if (routeId === 'SplashPage') { 
     return (
     <SplashPage 
      navigator={navigator} {...route.passProps} /> 
    ); 
    } 


    if (routeId === 'Login') { 
     return (
     <Login 
      navigator={navigator} {...route.passProps} /> 
    ); 
    } 

    return this.noRoute(navigator); 
    } 

    noRoute(navigator) { 
    return (
     <View style={{flex: 1, alignItems: 'stretch', justifyContent: 'center'}}> 
      <Text style={{color: 'red', fontWeight: 'bold'}}>Please check you Navigation Logic</Text> 
     </View> 
    ); 
    } 
}; 

module.exports = MainPage; 

私の子クラスの実装では、私もこの問題を持っていた、

class Login extends Component { 

    constructor(props) { 
    super(props); 
    this.state = { username: '',password:'' }; 
    } 

    render() { 
    return (
     <Navigator ref={(nav) => { navigator = nav; }} 
      renderScene={this.renderScene.bind(this)} 
      navigator={this.props.navigator} 
      navigationBar={ 
      <Navigator.NavigationBar style={styles.container} 
       routeMapper={NavigationBarRouteMapper} /> 
      } /> 
    ); 
    } 
    validateLogin() { 

    if(!Validators.validateOnlyText(this.state.username)) { 
     alert('User ID cannot be blank'); 
     return; 
    } 

    if(!Validators.validateOnlyText(this.state.password)) { 
     alert('Password cannot be blank'); 
     return; 
    } 

    var webServiceName=WebserviceHelper.Constants.POST_AUTHENTICATION; 
    var valuesJson= { "UserId" : this.state.username, "Password" : this.state.password }; 
    WebserviceHelper.postValues(webServiceName, valuesJson, this); 
    } 

    postWebCallback(webResponse){ 
    navigator.parentNavigator.replace({ 
     id: 'Home', 
     passProps: { 
      'userId': this.state.username, 
      'userNo' : this.state.webResponse.userNo 

    }); 
module.exports = Login; 

答えて

0

です。コンパイラが気に入らないのは、これはNaviterタグの

です。

ワードをthisNavigatorに変更し、var宣言のスコープの外で宣言しました。

+0

はい。あなたが正しいです。私は同じだった。 – Tirth

関連する問題