我有一个带有表单的子组件,用户可以在其中放置标题、描述和图像。
该组件位于其父组件的一部分上,我不希望如果用户更改部分(通过错误或仅查看)它的表单数据将被存储,因此当他回来时,他不需要再写一遍。
我想过将所有内容直接存储在父级的状态中,但是每次用户按下一个键时,它都会重新渲染整个视图。
而且我考虑在父级中创建一个变量,当呈现表单的子级时,其状态将从该父级的变量中获取它的初始状态,并在组件即将卸载时将信息存储在那里useEffect(()=>{return ()=>{ props.formData = formData } },[])
export default class feedClase extends Component {
data = {tittle:"", description: "", Blobs: [] }
render(
<>
<FormChild data={data}/>
<Feed/>
</>
)
}
FormChild({data}){
const [tittle, setTittle] = useState(data.tittle)
const [description, setDescription] = useState(data.description)
const [images, setImages] = useState(data.Blobs)
useEffect(() => {
return () => {
data = {Blobs: images, tittle, description}
//I also tried storing it in the parent's state
//-> props.setData({Blobs: images, tittle, description}) //setData={d=>this.setState({data: d})}
}
}, [])
return(
...
)
}
但它不会改变父变量/状态中的任何内容。我怎样才能让它工作?
三国纷争
杨__羊羊
相关分类