Comment puis-je transmettre les données d'un crochets code> formulaire ( composant em>) à un autre composant. Par exemple, si j'ai besoin de lecteur
nom et photo code> passer à partir de
profil.js code> et le permettez-le dans
navigation.js code>, comment puis-je faire cela?
joueur.js code> p>
navigation.js code> p>
app.js code> p>
context.js code> p>
3 Réponses :
Vous pouvez utiliser réacteur-redx code> pour la manipulation de l'état global ou passer une fonction de rappel de
Navigation.js code> à
Profil.js code>. p>
Y a-t-il une autre solution autre que d'utiliser Redux?
Ofc. Pour cette utilisation unique, je vous suggérerais de soulever votre état réactjs.org/docs/lifting-state-up.html autre que si vous l'utilisez plus souvent pour le contexte de réacteur.
Utilisez l'API de contexte intégré de React. Enveloppez votre application dans un fournisseur de contexte, vous pouvez utiliser Usecontext Crochet pour l'accès à l'Etat d'accès, les mises à jour de l'état d'expédition entre les composants.
const {state, dispatch} = useContext(AppContext);
// to update state call dispatch from anywhere, all components consuming state will be updated
dispatch({
type: "ACTION_TYPE",
payload: "new_value"
})
Pouvez-vous me fournir un exemple simple si possible.
Merci de mon vrai exemple, je reçois beaucoup d'erreur lorsque je change selon les suggestions.
Mon app.js semble ci-dessous: var réactdom = nécessite ("réact-dom"); Consp app = () => (
Merci, dans mon cas profile.js a obtenu mes données de lecteur de connexion chargées à partir de la base de données: Const [PlayerProfile, SetPlayerProfile] = USESTEZ ([]); CODE> MON AXIOS GET >> `USEEFFET ( () => {const fetchdata = async () => {Essaye {const parames = {email: loginueremail,}; const res = Axios.get (' localhost: 8000 / service / profil ', {params}); SetPlayerProfile (res.data.playerprofile);} Catch (e) {console.log (e);};};};} } fetchdata ();}, []);
J'ai ajouté mon app.js, navigation.js et profile.js et profil.js.js> comme suggéré. Les données du joueur sont disponibles dans Profile.js et comment passer
Const [PlayerProfile, SetPlayerProfile] = USESTE ([]); CODE> dans usecontext (UserProfilecontext); ? Quand j'ai essayé Const {SetPlayerProfile} = useContext (userProfilecontext) au lieu de setingdata, il jette une erreur lorsqu'il est déjà déclaré ..
J'ai mis à jour ma question avec mise à jour app.js, navigation.js et profile.js code> avec mon code d'origine.
Pourquoi créons-nous const [data, setingdata] = usetate ({..... code> dans
app.js code>, car les données que nous avons besoin pour saisir sont disponibles dans le profil .js?
@soccerway La raison est que vous souhaitez que les données soient également disponibles dans NAVIGATION.JS CODE>, d'une manière d'une manière de quitter l'état et de transmettre les données aux composants qui en ont besoin via des accessoires. Une seconde méthode utilise l'API de contexte de réacteur.
Vous devez
Soulevez votre état Up Code> - réactjs.org/docs /lifting-state-up.up.html - ou utilisez quelque chose comme
contexte code> - réactjs.org/docs/context.html