我试图在按下按钮时动画视图向右滑动,我目前有以下代码但仍在继续
undefined不是对象(评估this.state.panelPos)错误。我不明白代码有什么问题。有什么建议吗?
constructor(props){
super(props)
this.state = {
initialLife : 200,
panelPos: new Animated.Value(0),
};
};
slideOutPanel(){
Animated.timing( this.state.panelPos,{
toValue: 300,
duration: 1000,
}).start();
};
render(){return(
<View style = {styles.container}>
<View style = {styles.lContainer}>
<View style = {styles.playerLife}>
<View style = {styles.lifeButtonRow}>
<LifeButton/>
<LifeButton/>
</View>
<View style = {styles.lifeButtonRow}>
<LifeButton/>
<LifeButton/>
</View>
<Text>text</Text>
</View>
<Animated.View style = {[styles.panel,{transform: [{translateX: this.state.panelPos}]}]}>
<Image style = {styles.cmd_panel} source={require('image')}/>
</Animated.View>
</View>
<View style = {styles.portrait}>
<Button title = {'push'} onPress = {this.slideOutPanel}/>
</View>
</View>);
答案 0 :(得分:1)
否则一切似乎都是正确的,但此的上下文未正确设置:onPress={this.slideOutPanel}
。
要么:onPress={() => this.slideOutPanel()}
或:onPress={this.slideOutPanel.bind(this)}