При нажатии кнопки присоединиться к классу произошла ошибка.Я пытался связать this
, но все равно получается undefined
, как будто привязка не работает.Я понятия не имею об использовании this
в функции стрелки.
Влияет ли тот факт, что this
, который помещен в onClick
функцию onClick={()=> this.joinClassroom(classcode).bind(this)}
и определен внутри const btn
, влияет на привязку this
?
joinClassroom(classcode){
Meteor.call('smuProfile.joinClassroom', classcode, function(err, res){
if(err) {
message.error('Error occured while trying to join the classroom.');
} else {
message.success('You have successfully joined the classroom');
}
})
}
handleSubmit(e){
e.preventDefault();
this.props.form.validateFields((err, values)=>{
if(!err){
const value = values.classcode
Meteor.call('classroom.check', value, function(err, data){
if(data.length === 0){
message.error('There is no classroom with the code ' + value + ' in it. Please enter another code.' );
}
if(data.length >= 1){
if(data[0].owner === Meteor.userId()){
message.error('You have entered the code from one of your own classrooms. Please enter another code.' );
} else {
const classcode = data[0].classcode
console.log(classcode);
const key = `open${Date.now()}`
const btn = (
<Button type="primary" onClick={()=> this.joinClassroom(classcode).bind(this)}>
{classcode}
Join this classroom
</Button>
)
notification.open({
message: 'Found '+ data[0].classname,
description: (
<div key={data[0]._id}>
<Card className="classroom-card-join"
style={{ width: 340, backgroundColor: 'transparent', }}
cover={<div className="classroom-card-img" style={{backgroundImage:`url(${data[0].classheader}`, width:340, height:200, backgroundSize:'cover'}}/>}
bodyStyle={{ backgroundColor:`${data[0].classroomcolor}`}}
>
<Meta title={data[0].classname} description={data[0].subject}/>
</Card>
</div>
),
duration: 0,
btn,
key,
});
}//ending
}
});
}
this.props.form.resetFields();
});
}