【问题标题】:React-Native ViewPager goToPage Not WorkingReact-Native ViewPager goToPage 不工作
【发布时间】:2017-08-04 09:43:47
【问题描述】:
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) 无效。不显示错误/警告到底是什么问题?

【问题讨论】:

  • 如果您能提供更多信息会很有帮助。喜欢更多的代码,你尝试过的东西等等。比如,我想在构造函数中看到你的状态声明。您是否正在导入任何课程?您所说的实际页面在哪里。这是安卓还是ios?
  • 我这么说是因为我感觉你的问题由于含糊不清而即将遭到很多反对。
  • 查看这个关于记录错误的问题:stackoverflow.com/questions/30115372/…
  • 我试着让它更清楚一点。控制台不显示任何信息。安卓

标签: react-native


【解决方案1】:

您似乎超出了范围。当使用箭头函数时,'this' 的范围变成了词法。

尝试更改&lt;TouchableHighlight onPress={() =&gt; { this.PageChange('next'); }}&gt;

&lt;TouchableHighlight onPress={this.PageChange('next')}&gt;

看到这个问题: React-Native: Cannot access state values or any methods declared from renderRow

【讨论】:

  • 我认为问题会这样解决。我们如何定义 this.ViewPager?显示的错误是:undefined is not an object 'this.viewpager.goToPage'
  • 在这里查看答案:stackoverflow.com/questions/35663375/… 您需要将this 对象传递给函数。您的 PassChange 函数需要类似于:PageChange(x, this){
  • 谢谢亚当。第一个问题得到纠正。但是我仍然没有解决viewPager的问题。
  • 嗯,你应该在你的渲染函数中需要一个返回语句吗?除非我错过了。
  • @Yavuz Civelek,goToPage() 函数是否存在?您可能需要制作它,我在任何地方都找不到它的定义。喜欢:function goToPage(url){ if(url != ""){ go to URL here } } 这个 stackoverflow 问题应该指导您如何让 react native 为您打开一个 url:stackoverflow.com/questions/35531679/…
猜你喜欢
  • 2017-12-16
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
  • 1970-01-01
相关资源
最近更新 更多