Salut je ne suis pas très bon en utilisant réagir et je ne comprends pas pourquoi mon this.setState ne fonctionne pas ici, mais sur certains autres fichiers c'est. Sur mes autres fichiers il est écrit exactement la même chose et ça marche mais pas ici. Quelqu'un peut-il me dire pourquoi?this.setState n'est pas une fonction pourquoi cela n'a pas fonctionné?
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") {
Pourquoi utilisez-vous un 'IIFE' dans' if'? –
'function (prop) {' est une nouvelle fonction (non-flèche); il a un nouveau «ceci». Commencer à travailler en [mode strict] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode) et stocker une référence à 'this' quelque part. – Ryan