我有一组项目,我想在视图中渲染它们,所以我使用了一个函数,并从我的渲染部分对其进行了调用,如下所示:
之后,在每个项目上我都有一个touchableOpacity和一个函数。但是当我触摸它们时,将显示此错误:
_this2.selectAvatarID不是函数
我尝试使用绑定,但是没有用。 如果可以,请给我一些建议。 谢谢。
constructor(props) {
super(props);
this.state = {
userID : 0,
username: '',
password: '',
password2: '',
email: '',
loading: false,
showAlert: false,
alertType: true,
alertMessage: '',
emailVrified : '',
isGuest : '',
selectedAvatar: '',
};
this._selectAvatarID = this._selectAvatarID.bind(this);
}
_selectAvatarID = (xData) => {
if(this.state.selectedAvatar == xData){
this.setState({ selectedAvatar: '' });
}else{
this.setState({ selectedAvatar: xData });
}
}
renderAvatars = () => {
let avatar = [];
Object.keys(avatars).forEach(function (key){
avatar.push(
<TouchableOpacity key={avatars[key]} style={styles.avatarModalItems} onPress={() => this._selectAvatarID(key)} >
<Image source={avatars[key]} style={{width:80, height:80}}/>
</TouchableOpacity>
)
});
return avatar;
}
render() {
return (
<View style={styles.avatarModalView} >
{this.renderAvatars()}
</View>
)
}
答案 0 :(得分:0)
我发现那是因为这部分
End If
Next
实际上,它必须是这样的:
Object.keys(avatars).forEach(function (key){
谁能解释我发生了什么事?