2015-11-07 45 views
0

我有一個'登錄'場景(=初始路由)和另一個場景(不同的屏幕),稱爲'測試'。如何使用ToolbarAndroid組件的動作渲染導航器的不同場景?

var Login = require('./Components/Login'); 
var Test = require('./Components/Test'); 

我已經定義了ToolbarAndroid的Logo和右側的動作,點擊時應該渲染場景'Test'。目前我收到錯誤消息「未定義不是一個對象(評估'this.props.navigator.push')」

我試過不同的方式導航到'測試'場景,但沒有成功。

var ToolbarAndroid = require('ToolbarAndroid'); 
var QPointsAndroid = React.createClass({ 

    _onActionSelected: function(){ 
    this.props.navigator.push({id: 'Test'}) 
    }, 
    renderScene: function(route, navigator){ 
    if ('Login' === route.id) { 
    return (
     <View style={{flex: 1}}> 
     <ToolbarAndroid 
      title='' 
      actions={toolbarActions} 
      logo={require('image!logo')} 
      style={styles.toolbar} 
      onActionSelected={this._onActionSelected()} /> 
     <Login 
      name={route.name} 
      navigator={navigator} /> 
     </View> 
    ); 
    } else if ('Test' === route.id) { 
     return (
     <Test 
      navigator={navigator} /> 
    );}}, 
    render: function() { 
    return (
     <Navigator 
     style={styles.container} 
     initialRoute={{ 
      id: 'Login', 
      index: 0, 
     }} 
     renderScene ={this.renderScene} /> 
    );}}); 
var toolbarActions = [ 
    {title: 'Profile', icon: require('image!profile'), show: 'always'}, 
]; 

回答

0

我在行onActionSelected有一個錯誤。它應該是這個樣子的

onActionSelected={() => {this._onActionSelected(navigator)}} 

,比我有導航傳遞給函數:

_onActionSelected: function(navigator){ 
    console.log('check the navigator'); 
    navigator.push({id: 'Test'}); 
    },