[英]React Native ViewPagerAndroid error
Has anyone been successful in using the ViewPagerAndroid component? 有没有人成功使用ViewPagerAndroid组件?
EDIT 编辑
react-native 0.13.0-rc 反应本机0.13.0-rc
The error I'm getting is: No ViewManager defined for class AndroidViewPager
我得到的错误是:
No ViewManager defined for class AndroidViewPager
Original post below 下面的原始帖子
react-native 1.2.0 本机1.2.0
I keep getting this error: 我不断收到此错误:
Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.
I tried their code exatly as in the UIExplorer examples, ViewPagerAndroidExample.android.js 我像UIExplorer示例ViewPagerAndroidExample.android.js中那样巧妙地尝试了他们的代码
render: function() {
var pages = [];
for (var i = 0; i < PAGES; i++) {
var pageStyle = {
backgroundColor: BGCOLOR[i % BGCOLOR.length],
alignItems: 'center',
padding: 20,
};
pages.push(
<View key={i} style={pageStyle} collapsable={false}>
<Image
style={styles.image}
source={{uri: IMAGE_URIS[i % BGCOLOR.length]}}
/>
<LikeCount />
</View>
);
}
var page = this.state.page;
return (
<View style={styles.container}>
<ViewPagerAndroid
style={styles.viewPager}
initialPage={0}
onPageScroll={this.onPageScroll}
onPageSelected={this.onPageSelected}
ref={viewPager => { this.viewPager = viewPager; }}>
{pages}
</ViewPagerAndroid>
<View style={styles.buttons}>
<Button text="Start" enabled={page > 0} onPress={() => this.go(0)}/>
<Button text="Prev" enabled={page > 0} onPress={() => this.move(-1)}/>
<Text style={styles.buttonText}>Page {page + 1} / {PAGES}</Text>
<ProgressBar size={100} progress={this.state.progress}/>
<Button text="Next" enabled={page < PAGES - 1} onPress={() => this.move(1)}/>
<Button text="Last" enabled={page < PAGES - 1} onPress={() => this.go(PAGES - 1)}/>
</View>
</View>
);
},
I had the exact same issue, and coudn´t fix it. 我遇到了完全相同的问题,因此无法解决。 But maybe you want to use the react-native-viewpager, which works perfectly for iOS and Android.
但也许您想使用react-native-viewpager,它非常适合iOS和Android。 You can get it here :
你可以在这里得到它:
It´s really easy to work with... The following works in my Android and iOS App: 使用起来真的很容易...以下内容可在我的Android和iOS应用程序中使用:
1. Define your Pages/Views 1.定义页面/视图
var VIEWS = ['View 1','View 2','View 3'];
2. Then set the dataSource in your getInitialState function: 2.然后在您的getInitialState函数中设置dataSource:
getInitialState: function () {
var dataSource = new ViewPager.DataSource ({
pageHasChanged: ( p1, p2 ) => p1 !== p2,
});
return {
dataSource: dataSource.cloneWithPages(VIEWS),
};
},
3. In your render-method: 3.在您的渲染方法中:
<ViewPager
style={this.props.style}
dataSource={this.state.dataSource}
renderPage={this._renderPage}
onChangePage={this._onChangePage}
isLoop={true}
autoPlay={false}/>
4. And then render your Pages: 4.然后呈现您的页面:
_renderPage: function ( data:Object, pageID:number ) {
return (
<View style={styles.page}>
<Text style={styles.text}>{data + ' pageID: ' + pageID}</Text>
</View>
);
},
_onChangePage: function ( page:number ) {
notifyMessage ('Current page: ' + page);
},
And don´t forget to require the node module: 并且不要忘记需要节点模块:
var ViewPager = require ('react-native-viewpager');
Let me know if you found out how to fix the ViewPagerAndroid... 让我知道您是否找到了解决ViewPagerAndroid的方法...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.