【问题标题】:How can I pass refs into variable of NavigationBar routeMapper (React Native)?如何将 refs 传递到 NavigationBar routeMapper(React Native)的变量中?
【发布时间】:2016-07-20 19:42:23
【问题描述】:

以下是更新后的代码——我正在尝试从https://github.com/root-two/react-native-drawer 实现 react-native-drawer,并且我传递给 NavigationBarRouteMapper 的变量正确记录了 openDrawer() 函数,但是当单击左侧导航按钮时它什么也不做:

class practice extends Component {
...

  openDrawer(){
    this._drawer.open()
  }

  render() {
    return (
  <Drawer
    content={<DrawerPanel/>}
    openDrawerOffset={100}
    ref={(ref) => this._drawer = ref}
    type='static'
    tweenHandler={Drawer.tweenPresets.parallax}
  >
        <Navigator
          configureScene={this.configureScene}
          initialRoute={{name: 'Start', component: Start}}
          renderScene={this.renderScene}
          style={styles.container}
          navigationBar={
            <Navigator.NavigationBar
              style={styles.navBar}
              routeMapper={NavigationBarRouteMapper(this.openDrawer)}
            />
          }
        />
  </Drawer>
    );
  }
}

var NavigationBarRouteMapper = openDrawer => ({
  LeftButton(route, navigator, index, navState){
      return(
          <TouchableHighlight onPress={()=>{openDrawer}}>
              <Text>Open Menu</Text>
          </TouchableHighlight>
      )
    }
  },...

什么可能阻止抽屉打开?似乎一切都已正确实施。

【问题讨论】:

  • @NaderDabit 仍然卡住

标签: javascript ios react-native react-jsx


【解决方案1】:

您的问题在于 testingString 变量的范围。当你console.log(this.testingString)时,this指向NavigationBarRouteMapper函数返回的对象。你没有在这个对象上设置testingString 变量,所以它会返回 undefined。

要以这种方式获取您传递给函数的变量,只需使用testingString,而不是this.testingString

关于 openDrawer 功能的编辑

您正在传递一个函数,该函数返回您的openDrawer 函数,而不是调用它。您需要通过 onPress={openDrawer}onPress={() =&gt; openDrawer()} 作为您的道具。

【讨论】:

  • 谢谢!它能够正确登录。现在为了进一步学习,我用额外的代码更新了原始帖子,但它仍然无法按预期运行。可能是什么问题?
  • 非常感谢!刚刚接受了答案。如果你不介意,你能接受我遇到的另一个问题吗? stackoverflow.com/questions/38519655/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 2021-12-24
  • 1970-01-01
  • 2016-12-28
相关资源
最近更新 更多