为什么 get scrollIntoView 不是一个函数
Why get scrollIntoView is not a function
这是一个简单的问题,我只是不明白为什么我得到“不是很多 ref 函数的函数。
我这样声明使用 ref 变量:
const massageTypeRef = useRef();
现在页面顶部有文本组件:
选择类型:
3.and 我在底部有另一个按钮,我希望在单击该按钮时,将用户一直带到文本组件。
在我的底部按钮中,我有:
<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
这里 link 我的 github 组件和项目:https://github.com/roeigr7/LIOR/blob/main/src/screens/MeetingPickerScreen.js
您应该使用带有适当功能的 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',
},
});
这是一个简单的问题,我只是不明白为什么我得到“不是很多 ref 函数的函数。
我这样声明使用 ref 变量:
const massageTypeRef = useRef();
现在页面顶部有文本组件: 选择类型: 3.and 我在底部有另一个按钮,我希望在单击该按钮时,将用户一直带到文本组件。 在我的底部按钮中,我有:
<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
这里 link 我的 github 组件和项目:https://github.com/roeigr7/LIOR/blob/main/src/screens/MeetingPickerScreen.js
您应该使用带有适当功能的 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',
},
});