私はViewPagerAndroidを自分のコンポーネントの1つに実装しています。ページャの子ページビューは動的です(多分問題ですか?)アンドロイドのエラー '指定された子が既に親を持っています。子の親のfirstViewでremoveView()を呼び出す必要があります。ここにコンポーネントがあります:動的ページビューを使用してネイティブViewPagerAndroidに反応する
var PageContent = React.createClass({
propTypes: {
page: React.PropTypes.oneOfType([
React.PropTypes.object, React.PropTypes.bool
]),
pageNext: React.PropTypes.oneOfType([
React.PropTypes.object, React.PropTypes.bool
]),
pagePrevious: React.PropTypes.oneOfType([
React.PropTypes.object, React.PropTypes.bool
]),
positionY: React.PropTypes.object,
positionYNext: React.PropTypes.object,
positionYPrevious: React.PropTypes.object,
pageDensity: React.PropTypes.number,
updatePage: React.PropTypes.func
},
initialPageIndex() {
if (this.props.page.number === 1)
return 0;
return 1;
},
onPageSelected(e) {
var initialPageIndex = this.initialPageIndex();
var position = e.nativeEvent.position;
console.warn(position);
// The initial page can have an index in the PageViewer
// of zero or one, so we must determine the new page number
// by checking the viewer position in terms of the true pages array.
if (position < initialPageIndex) {
// the user turned to the previous page!
this.props.updatePage(this.props.page.number - 1);
} else if (position > initialPageIndex) {
// the user turned to the next page!
this.props.updatePage(this.props.page.number + 1);
}
},
render() {
var pagePrevious = this.props.pagePrevious;
var page = this.props.page;
var pageNext = this.props.pageNext;
var pageViews = [pagePrevious, page, pageNext].map((current, i) => {
if (!current) return null;
var titles = <Titles page={current}/>;
var image = current.image
? <Image
source={current.image}
/>
: null;
var text = <PageText page={current} pageDensity={this.props.pageDensity}/>
var view =
<View key={i}>
{titles}
{image}
{text}
</View>;
return view;
}).filter((current) => {return !!current});
// we must dynamically determine the initial page index.
// Do not use state because we can derive this from the current page state.
var initialPageIndex = this.initialPageIndex();
return (
<View style={styles.containerViewPager}>
<ViewPagerAndroid
style={styles.viewPager}
initialPage={initialPageIndex}
pageMargin={10}
onPageSelected={this.onPageSelected}>
{pageViews}
</ViewPagerAndroid>
</View>
);
}
});
各動的ページビューのキープロパティを設定しています。ページビューアは動的ページをサポートしていますか?