React-Native ViewPager goToPage 不工作

Posted

技术标签:

【中文标题】React-Native ViewPager goToPage 不工作【英文标题】:React-Native ViewPager goToPage Not Working 【发布时间】: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 我这么说是因为我感觉你的问题由于含糊不清而即将遭到很多反对。 查看这个关于记录错误的问题:***.com/questions/30115372/… 我试着让它更清楚一点。控制台不显示任何信息。安卓 【参考方案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' 在这里查看答案:***.com/questions/35663375/… 您需要将this 对象传递给函数。您的 PassChange 函数需要类似于:PageChange(x, this) 谢谢亚当。第一个问题得到纠正。但是我仍然没有解决viewPager的问题。 嗯,你应该在你的渲染函数中需要一个返回语句吗?除非我错过了。 @Yavuz Civelek,goToPage() 函数是否存在?您可能需要制作它,我在任何地方都找不到它的定义。喜欢:function goToPage(url) if(url != "") go to URL here 这个 *** 问题应该指导您如何让 react native 为您打开一个 url:***.com/questions/35531679/…

以上是关于React-Native ViewPager goToPage 不工作的主要内容,如果未能解决你的问题,请参考以下文章

2020-06-19 react-native下开发运行Android跟iOS详细步骤

react-native-ViewPagerAndroid

ViewPager1嵌入ViewPager2,两者重叠,怎么禁止ViewPager1的滑动功能?

viewpager2的用法

andorid自己定义ViewPager之——子ViewPager滑到边缘后直接滑动父ViewPager

viewpager怎么实现画廊