2 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
您需要將數(shù)據(jù)對(duì)象存儲(chǔ)在狀態(tài)中。
export default class feedClase extends Component {
state = { data = {tittle:"", description: "", Blobs: [] } }
render(
<>
<FormChild data={this.state.data}/>
<Feed/>
</>
)
}
但是,我注意到您的代碼中有幾件事我會(huì)更改。您的父組件中有狀態(tài)作為道具傳遞下來(lái)。然后在子組件中,您將狀態(tài)片段保存在狀態(tài)中。你應(yīng)該避免保持這樣的兩個(gè)版本的狀態(tài)。
此外,您似乎正在嘗試在 useEffect 掛鉤中更新您的狀態(tài)。我建議在與 state 相同的組件中編寫(xiě)處理程序方法,并在需要時(shí)將它們作為 props 傳遞。

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
你可以這樣做: -
export default class feedClase extends Component {
data = {tittle:"", description: "", Blobs: [] }
const handleSetData = (obj) => {
data[obj.key] = obj.value;
}
render(
<>
<FormChild data={data} onChange={obj => handleSetData(obj)} />
<Feed/>
</>
)
}
FormChild(props){
const [tittle, setTittle] = useState(props.data.tittle)
const [description, setDescription] = useState(props.data.description)
const [images, setImages] = useState(props.data.Blobs)
const handleChange = (e) => {
setTittle(e.target.value);
props.onChange({key: "tittle", value: e.target.value});
}
return(
<input onChange={e => handleChange(e)} placeholder="tittle" />
...
)
}
添加回答
舉報(bào)