3 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
我認(rèn)為您是在詢問如何將數(shù)據(jù)從孩子傳遞給父母。
您必須將一個(gè)方法從 App 傳遞給 Person。
并從 Person 組件調(diào)用該方法。
function Person (props){
? const {setNameToApp} = props;
? const name = "Jennifer";?
??
// this useEffect is called when the component mounts for the first time
?React.useEffect(()=>{
? ?setNameToApp(name);
?},[])
??
// I have also shown how to use button to change the greet state in the app.
? return (
<div>
?<button onClick={()=>{setNameToApp("name when I pressbutton")}}> Set Name </button>?
</div>)
}
function App(props) {
? const [greet, setGreet] = React.useState("");
?
// pass setGreet function to components which can call this and change the state of the greet
?
? return (
? ? <div>
? ? ? <h1> Good? {greet} </h1>
? ? ? <Person? setNameToApp = {setGreet} />?
? ? </div>
? );
}

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
將名稱作為道具從 person.js(父組件)傳遞到 App.js(子組件)
Person.js
import React from 'react';
import App from './App'
export default function Person (){
? ? const name="Jenifer"
? ? return(
? ? ? ? <div>
? ? ? ? <App name={name}/>
? ? ? ? </div>
? ? );
}
應(yīng)用程序.js
import { useState,useEffect } from 'react';
// import Person from './Person'
function App(props) {
const [greet, setGreeet] = useState("");
? return (
? ? <div className="App">
? ? ? <h1> Good Morning {props.name} </h1> // Good Morning Jenifer
? ? </div>
? );
}
export default App;

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
最后我找到了原因。發(fā)生這種情況是因?yàn)槲以噲D將數(shù)據(jù)從我的子類傳遞到父類。這樣做是不可能的。
添加回答
舉報(bào)