this2.'function'不是函数-React Native

时间:2019-03-29 06:46:46

标签: javascript react-native

我有一组项目,我想在视图中渲染它们,所以我使用了一个函数,并从我的渲染部分对其进行了调用,如下所示:

之后,在每个项目上我都有一个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>
)
}

1 个答案:

答案 0 :(得分:0)

我发现那是因为这部分

End If
Next

实际上,它必须是这样的:

Object.keys(avatars).forEach(function (key){  

谁能解释我发生了什么事?