在我的一个视图的渲染函数中,我试图将视图的不透明度绑定到一个状态属性:this.state.infoOpacity。
这是一个错误“未定义不是一个对象(评估'this.state.infoOpacity')”
任何指导都会有所帮助。
export default class BookView extends Component
{
constructor(props) {
super(props);
this.state = {
hideInfo:false,
infoOpacity:0.80,
swiperWidth:Dimensions.get('window').width,
swiperHeight:Dimensions.get('window').height
};
}
render() {
pages.forEach(function(ranPage){
photoViews.push(
<View key={ranPage.letter} style={{width: Dimensions.get('window').width, height: Dimensions.get('window').height}}>
<View style={[styles.meow,{opacity: this.state.infoOpacity}]}>
<Text style={styles.text}>{ranPage.name}</Text>
<Text style={styles.text}>{ranPage.phonetic}</Text>
<Text style={styles.text2}>{ranPage.description}</Text>
</View>
</View>
)
});
return (
<View style={{flex:1}}>
<Swiper showsButtons={false} style={{backgroundColor:'#000'}} width={this.state.swiperWidth} height={this.state.swiperHeight}>
{photoViews}
</Swiper>
</View>
);
}
}
答案 0 :(得分:2)
forEach函数中的上下文已更改。使用箭头功能来解决您的问题。而不是
pages.forEach(function(ranPage){ ... });
写这个
pages.forEach((ranPage) => { ... });