안녕하세요 저는 반응이 좋지 않아 verry가 좋지 않아서 왜 this.setState가 여기에서 일하지 않고 다른 일부 파일에서는 작동하지 않는다는 것을 이해하지 못합니다. 내 다른 파일에 그것은 정확하게 똑같이 쓰여지고 작동하지만 여기에는 없습니다. 누군가 왜 저에게 말할 수 있습니까? 이 라인에서this.setState가 작동하지 않는 함수가 아닙니까?
test(event){
event.preventDefault();
var regex_mongoinclude = document.getElementById("regexinclude").value;
var regex_mongoexclude = document.getElementById("regexexclude").value;
if (this.props.item.type == "email") {
(function(prop) {
var text = document.getElementById("name_sub").value;
var reg = /^([a-zA-Z0-9.\-_]+[@]{1}[a-zA-Z0-9\-_]+[.]{1}[a-zA-Z0-9\-_]+[,]*)+/;
if(reg.test(text)==true) {
Subs.update(
{ _id: prop.item._id },
{
text,
type :"email",
createdAt: new Date(),
regex_mongoinclude,
regex_mongoexclude,
topic:prop.parent._id,
},
{ upsert: true }
)
this.setState({
showMessage: true,
isError: false
});
} else {
this.setState({
showMessage: true,
isError: true
});
}
})(this.props)
} else if (this.props.item.type == "slack") {
왜 'if'안에'IIFE '를 사용하고 있습니까? –
'function (prop) {'은 새로운 (화살표가 아닌) 함수입니다; 그것은 새로운'this'를 가지고 있습니다. [엄격 모드] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode)에서 작업을 시작하고 어딘가에 'this'에 대한 참조를 저장하십시오. – Ryan