问题描述
我想在显示和隐藏键盘时调整徽标的大小。 这是imgStyle.js
import {StyleSheet,Dimensions} from 'react-native';
const Height = Dimensions.get('screen');
const height_logo = Height * 0.2;
const height_logo_small = Height * 0.6;
const IMAGE_HEIGHT = height_logo;
const IMAGE_HEIGHT_SMALL = height_logo_small;
constructor(props) {
super(props);
this.imageHeight = new Animated.Value(IMAGE_HEIGHT);
}
componentDidMount() {
this.keyboardDidShowSub = Keyboard.addListener(
'keyboardDidShow',this.keyboardDidShow,);
this.keyboardDidHideSub = Keyboard.addListener(
'keyboardDidHide',this.keyboardDidHide,);
}
componentwillUnmount() {
this.keyboardDidShowSub.remove();
this.keyboardDidHideSub.remove();
}
keyboardDidShow = () => {
Animated.timing(this.imageHeight,{
tovalue: IMAGE_HEIGHT_SMALL,duration: 5000,}).start();
};
keyboardDidHide = () => {
Animated.timing(this.imageHeight,{
tovalue: IMAGE_HEIGHT,}).start();
};
这是错误:
错误:AnimatedValue:尝试将值设置为未定义
解决方法
未从imgStyle.js导出IMAGE_HEIGHT常量
,尝试将Animated.Value
设置为布尔值而不是0
或1
时遇到此问题。
需要对此进行更改:
// expanded is a boolean var here
const toggleAnim = useRef(new Animated.Value(!expanded)).current;
对此:
// expanded is a boolean var here
const toggleAnim = useRef(new Animated.Value(expanded ? 0 : 1)).current;
value
必须是数字:see documentation
(注意:这同时适用于Animated.Value
和setValue()
,请参见上面的链接以获取详细信息)