2 回答
TA贡献1804条经验 获得超7个赞
您需要将数据对象存储在状态中。
export default class feedClase extends Component {
state = { data = {tittle:"", description: "", Blobs: [] } }
render(
<>
<FormChild data={this.state.data}/>
<Feed/>
</>
)
}
但是,我注意到您的代码中有几件事我会更改。您的父组件中有状态作为道具传递下来。然后在子组件中,您将状态片段保存在状态中。你应该避免保持这样的两个版本的状态。
此外,您似乎正在尝试在 useEffect 挂钩中更新您的状态。我建议在与 state 相同的组件中编写处理程序方法,并在需要时将它们作为 props 传递。
TA贡献1943条经验 获得超7个赞
你可以这样做: -
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" />
...
)
}
添加回答
举报