IM Utilisation de MatérialUI Pour cliquer sur un élément de menu qui ouvre une boîte de dialogue (composant enfant) Toutefois, une fois que la boîte de dialogue s'ouvre, il semblerait de fermer et de mettre à jour les données de HolidaySettings.js strong> p> HolidayDialog.js strong> p> < Pré> xxx pré> p> noticemodal code>. Il n'y a aucune erreur d'erreur et je crois que cela a à voir avec l'utilisation d'utiliser
useeffect code> à
setnoticemodal (accessoires) code> pour l'état initial. Ive essayé de supprimer le
useeffect () code> et de lancer
apps.open code> dans le
par défaut d'envoi () code> pour le
notifemodal code> En faisant cela, ma boîte de dialogue ne s'ouvrira plus du tout. Qu'est-ce que je cherche ici?
3 Réponses :
à l'intérieur de l'USEEffect, vous réinitialisez la valeur Je crois que ce que vous essayez de faire est défini la valeur initiale de noticemodal.
Essayez de changer le code ci-dessous et supprimez l'USEFFECT P> noticemodal code> à
ProPs.Open code> que je crois est vrai?
const [noticeModal, setNoticeModal] = useState(props.open);
dans ma question, j'ai commencé quand je l'ai fait, la boîte de dialogue ne s'ouvrira même pas
Pourriez-vous essayer cela?
Je suppose que si projecs.onClose strong> ne fait pas dialogopène fort> à faux fort> faux fort > sur le parent ( HolidaySettings strong>). Vous pouvez ajouter un attribut Fermer qui définit dialogopène fort> sur false. p> et en passant Props.open Strong> à la boîte de dialogue P> <Dialog
open={props.open}
/>
Où est apps.close () code> venant de?
@Dipesh je l'ai compris sur accessoires code>
Vous ne fournissez aucune dépendance à useeffect code> de sorte qu'il fonctionne à chaque re-rendu. Dans votre useeffect, vous basculez le mode modal et donc le problème.
useEffect(() => {
setNoticeModal(props.open)
}, [props.open]); //<----- props.open
Cela fonctionne pour la fermeture de la boîte de dialogue! Cependant, il semble présenter un nouveau problème, à proximité, je ne peux plus ouvrir la boîte de dialogue jusqu'à ce que je rafraîchis la page?
C'est parce que ProPs.Open est toujours vrai. L'avez-vous faite de faux après la fermeture de la dialogue? Je suppose que tu ne fais que "noticemodal" faux
@Dipedeshkc Comment allourais-je continuer à faire de faux faux?
Console.log of Handleclose connecte-t-il sur l'événement ONCLOSE?