如何使用ToolbarAndroid组件的动作渲染导航器的不同场景?

时间:2015-11-07 16:37:44

标签: react-native

我有一个登录'场景(=初始路线)和另一个场景(不同的屏幕)称为“测试'。

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

我已经向To​​olbarAndroid定义了一个Logo和一个右侧的动作,点击它时应该渲染场景' Test'。目前我收到错误消息" undefined不是对象(评估' 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'},
];

1 个答案:

答案 0 :(得分:0)

我在onActionSelected行中出错了。应该看起来像这样

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

而且我必须将导航器传递给函数:

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