2016-12-31 6 views
0

React Nativeプロジェクトで作業していますが、Navigatorオブジェクトを参照できない理由がわかりません。エラーが発生しました:undefined is not an object (evaluating _this2.refs._navigator.push)私のsetTimeout機能が起動すると、1秒後にエラーが発生します。React NativeからNavigatorを参照できません

はここ

が私のコードで任意の助けに感謝します。

App.js

// ... some code initialization... 

class App extends Component { 
    constructor(props) { 
    super(props); 
    } 

    componentDidMount() { 
    setTimeout(() => { 
     this.refs._navigator.push(routes[1]); 
    }, 1000); 
    } 

    render() { 
    return(
     <Navigator 
     initialRoute={routes[0]} 
     initialRouteStack={routes} 
     renderScene={(route, navigator) => { 
      switch (route.index) { 
      case 0: 
       return <Home />; 
      case 1: 
       return <About />; 
      default: 
       return <Home />; 
      } 
     }} 
     ref={(nav) => { this._navigator = nav; }} 
     /> 
    ); 
    } 

} 

const routes = [ 
    {title: 'Home', index: 0}, 
    {title: 'About', index: 1}, 
    {title: 'Cars', index: 2} 
]; 

答えて

0

componentDidMountでこれをやってみてください、あなたのナビゲーターrefの中this._navigatorとしてNAVを参照しているため

componentDidMount() { 
    setTimeout(() => { 
    this._navigator.push(routes[1]); 
    }, 1000); 
} 

です。

+0

ちょっと@Nader、ありがとうございました。これは私には少し混乱しているようです。なぜなら、純粋なリアクトでは、これを得るために「refs」という言葉を入れなければならないからです。ところで。ありがとうございました。 –

+1

@PabloDarde refコールバックに 'this._navigator'を割り当てているので、そこにはあります – Icepickle

+1

ああ、あなたは正しいでしょう、おそらく、 'refs'キーワードは非難された参照方法の要素に必要でした、 **廃止予定** {this.element = el; }} ... ありがとう –

関連する問題