Как я могу прокрутить верхнюю часть кнопки onPress в реагировать на родной?
Я добавил кнопку внизу простого экрана и хочу прокручивать верхнюю часть всякий раз, когда нажимаю кнопку. какой код добавить на кнопку onPress?, подскажите, пожалуйста, какое-либо решение, заранее спасибо.
3 ответа
Я предполагаю, что вы используете ScrollView на своей странице, так как вы хотите прокручивать вверх при каждом нажатии кнопки внизу. В этом случае вы можете использовать scrollTo({x: 0, y: 0, animated: true})
метод ScrollView
, Вы можете вызвать функцию перед методом рендеринга следующим образом:
goToTop = () => {
this.scroll.scrollTo({x: 0, y: 0, animated: true});
}
render() {
return (
<ScrollView
ref={(c) => {this.scroll = c}}
>
// [rest of your code here...]
<Button title='Go To Top' onPress={this.goToTop} />
</ScrollView>
)
}
В основном, вы должны создать ссылку (ref
) в свой scrollView, а затем вы можете вызвать его метод в любом месте вашего кода.
В случае, если вы не используете ScrollView, но вместо этого вы используете компонент Flatlist, он также имеет метод, представленный через его ref
называется scrollToOffset().
В React Native для функционального компонента необходимо выполнить следующие действия, чтобы прокрутить верхнюю часть в ScrollView-
1. Определите глобально в функциональном компоненте:- const scroll = React.createRef();
- затем добавьте:- ref={scroll} в ScrollView.
3. Наконец, при нажатии добавьте:- scroll.current.scrollTo(0); // прокрутим вверх в позиции y 0
// const scroll = React.createRef();
если вы получаете ошибку, что scroll.current равен Null, попробуйте это
const scroll = React.useRef();
Это сработало в моем случае.