2017-03-14 72 views
0
import ViewPager from 'react-native-viewpager'; 
constructor(props){ 
     super(props); 

     this._renderPage = this._renderPage.bind(this); 
     this._renderRowSablon = this._renderRowSablon.bind(this); 
     this.PageChange = this.PageChange.bind(this); 
     this.count = 0; 
     this.state = { 
       count: 0, 
       info : this.props.values, 
       page: 0, 
       pages:pages, 
     } 
} 
PageChange(x){ 
     switch(x){ 
       case 'next': 
        if(this.state.count< (this.state.info.sayfa - 1)){ 
          this.viewpager.goToPage(this.state.count + 1); 
          this.setState({count: this.state.count+ 1}); 
        } 
       break; 
     } 
    } 
render(){ 
      <View style={{flex:1}}> 
       <ViewPager 
        ref={(viewpager) => {this.viewpager = viewpager}} 
        dataSource={this.state.dataSource} 
        renderPage={this._renderPage} 
        onChangePage={this._pageChange} 
        isLoop={false} 
        renderPageIndicator={false} 
        locked={true} 
        autoPlay={false}/> 
      </View> 
      <View style={{flex:1}}> 
       <TouchableHighlight onPress={() => { this.PageChange('next'); }}> 
       <Text>Next</Text> 
        </TouchableHighlight> 
      </View> 
} 

當setState函數被清除時,頁面正在發生更改。當添加setState函數(如上所述)時,setState工作,但頁面更改(gotoPage)不起作用。不顯示錯誤/警告究竟是什麼問題?React-Native ViewPager goToPage不工作

+0

這將是有益的,如果你能提供更多的信息。像更多的代碼,你嘗試過的東西等等。我想看看你的狀態聲明在構造函數中。你是否在進口任何課程?你說的實際頁面在哪裏?這是android還是ios? –

+0

我這樣說,因爲我覺得你的問題是由於它的含糊不清而接受了很多的降薪。 –

+0

看到這個關於記錄錯誤的問題:http://stackoverflow.com/questions/30115372/how-to-do-logging-in-react-native –

回答

0

看來你超出了範圍。當使用箭頭函數時,「this」的範圍變成詞法。

嘗試改變<TouchableHighlight onPress={() => { this.PageChange('next'); }}>

<TouchableHighlight onPress={this.PageChange('next')}>

看到這個問題: React-Native: Cannot access state values or any methods declared from renderRow

+0

我認爲這個問題會以這種方式解決。我們如何定義this.ViewPager?顯示的錯誤是:undefined不是一個對象'this.viewpager.goToPage' –

+0

檢查答案在這裏:http://stackoverflow.com/questions/35663375/how-to-pass-a-component-reference-to- onpress-callback 您需要將'this'對象傳遞給函數。 而你的PassChange函數需要看起來像這樣:'PageChange(x,this){' –

+1

感謝Adam。第一個問題已被糾正。但我仍然沒有解決viewPager的問題。 –