Почему get scrollIntoView не является функцией

это простой вопрос, я просто не понимаю, почему я получаю «не является функцией многих функций ref.

  1. я объявляю использовать переменную ref так:

     const massageTypeRef = useRef();
    
  2. Теперь у меня есть текстовый компонент вверху страницы: Выберите тип: 3. и у меня есть еще одна кнопка внизу, я хочу, чтобы при нажатии кнопки пользователь полностью переходил к текстовому компоненту. в моей нижней кнопке у меня есть:

      <AnimatedButton
                 onPress = {() => massageTypeRef.current.scrollIntoView()}/// 
     here i dont know why i get is not a function
                  pass
                 icon = "arrow-up"
                 buttonStyle = {styles.problembutton}
                 textStyle = {styles.problembuttontext}
             />
    

Я пробовал много методов, таких как:

onPress = {() =>
                    massageTypeRef.current.scrollIntoView({
                        behavior: "smooth",
                    })

и:

onPress = {() =>
                    massageTypeRef.current.scrollTo()
                    })

но я всегда получаю: TypeError: massageTypeRef.current.scrollIntoView не является функцией. (В 'massageTypeRef.current.scrollIntoView()' 'massageTypeRef.current.scrollIntoView' не определено)


я создаю закуску на выставке, чтобы показать, что я хочу сделать, по какой-то причине работа идеальна, и когда я делаю то же самое в своих проектах, это дает мне сообщение «это не функция ....». вот закуска https://snack.expo.io/OYWlNQwP4

вот ссылка на мой компонент и проект github: https://github.com/roeigr7/LIOR/blob/main/src/screens/MeetingPickerScreen.js

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
5 089
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны использовать ScrollView с соответствующими функциями, такими как scrollTo вместо View, а высота ScrollView должна быть больше высоты экрана.

https://reactnative.dev/docs/scrollview#snaptoend

import React, { useRef, useState } from 'react';
import { Button, Text, View, StyleSheet, ScrollView } from 'react-native';
import Constants from 'expo-constants';

// You can import from local files
import AssetExample from './components/AssetExample';

// or any pure javascript modules available in npm
import { Card } from 'react-native-paper';

export default function App() {
  const myref = useRef();
  return (
    <ScrollView ref = {myref}>
      <View style = {styles.txt}>
        <Text style = {styles.text}>TEXT THAT THE REF NEED TO GO TO </Text>
      </View>
      <View></View>
      <Button
        title = "when press go up to text comp"
        onPress = {() => {
          myref.current.scrollTo(0);
        }}
      />
    </ScrollView>
  );
}
const styles = StyleSheet.create({
  text: {
    color: 'black',
    padding: 20,
    backgroundColor: 'grey',
  },
  txt: {
    minHeight: 1600,
    backgroundColor: 'white',
  },
});

Хорошо. Но мой компонент находится внутри другого представления прокрутки, и это дает мне ошибки. Как я могу справиться с этим?

Roei Grinshpan 11.12.2020 19:17

Или есть функция для просмотра, которая использует ссылку на элемент?

Roei Grinshpan 11.12.2020 19:30

Другие вопросы по теме