簡體   English   中英

如何將引用傳遞到NavigationBar routeMapper(React Native)的變量中?

[英]How can I pass refs into variable of NavigationBar routeMapper (React Native)?

以下是UPDATED代碼-我正在嘗試從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>
      )
    }
  },...

是什么原因導致抽屜無法打開? 似乎一切都已正確實施。

您的問題與testingString變量的范圍有關。 當您console.log(this.testingString)this指向NavigationBarRouteMapper函數返回的對象。 您尚未在此對象上設置testingString變量,因此它將返回未定義。

要獲取以這種方式傳遞給函數的變量,只需使用testingString ,而不要使用this.testingString

編輯有關openDrawer函數

您傳遞的是一個返回 openDrawer函數的函數,而不是調用它。 您將希望傳遞onPress={openDrawer}onPress={() => openDrawer()}作為道具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM