gpt4 book ai didi

react-native-swiper 下一个/上一个按钮事件

转载 作者:行者123 更新时间:2023-12-03 19:25:54 26 4
gpt4 key购买 nike

swiper 索引值按页面顺序出现。
但是,当按下按钮时,索引值会上升到无穷大。

例如)下一个按钮点击-> 6/5、7/5、8/5

我想做的是在 5/5 停止按钮事件,但我不知道该怎么做。

https://github.com/leecade/react-native-swiper

App.js

const renderPagination = (index, total, context) => {

return (
<View style={styles.paginationStyle}>
<Text style={{ color: 'grey' }}>
<Text style={styles.paginationText}>{index + 1}</Text>/{total}
</Text>
</View>
)
}

export default class App extends Component {

constructor(props){
super(props);
this.onPressNext = this.onPressNext.bind(this);
this.state = {
idxActive: 1
}
}

onPressPrev = () => {
this.refs.swiper.scrollBy(-1)
}

onPressNext = () => {
this.refs.swiper.scrollBy(1);
}

render() {
return (

<View style={styles.container}>


<Swiper
style={styles.wrapper}
renderPagination={renderPagination}
showsButtons={false}
loop={false}
ref={'swiper'}
>
<View style={styles.slide}>
<Text style={styles.text}>1 page</Text>
</View>
<View style={styles.slide}>
<Text style={styles.text}>2 page</Text>
</View>
<View style={styles.slide}>
<Text style={styles.text}>3 page</Text>
</View>
<View style={styles.slide}>
<Text style={styles.text}>4 page</Text>
</View>
<View style={styles.slide}>
<Text style={styles.text}>5 page</Text>
</View>
</Swiper>

<View style={styles.buttoncontainer}>
<Button
onPress={this.onPressPrev}
title="previous">
</Button>
<Button
onPress={this.onPressNext}
title="next">
</Button>

</View>
</View>
);
}
}

最佳答案

使用 onIndexedChanged刷机 Prop 获取最新index并将其保存在本地组件状态中。就像是:

export default class App extends Component {

constructor(props){
super(props);
this.onPressNext = this.onPressNext.bind(this);
this.onPressPrev = this.onPressPrev.bind(this);
this.state = {
idxActive: 0
}
}

onPressPrev = () => {
const {idxActive} = this.state;
if (idxActive > 0) {
this.refs.swiper.scrollBy(-1)
}
}

onPressNext = () => {
const {idxActive} = this.state;
// Probably best set as a constant somewhere vs a hardcoded 5
if (idxActive < 5) {
this.refs.swiper.scrollBy(1);
}
}

render() {
return (

<View style={styles.container}>


<Swiper
... etc.
onIndexChanged={idxActive => this.setState({idxActive})}
>
... etc.

关于react-native-swiper 下一个/上一个按钮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57303535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com