我开始在React中开发表单,我已经将表单的每个字段都作为一个单独的组件。所以,从下面的图片:组件A -是具有提交功能的表单组件B -是文件输入(例如)点击Submit按钮后,如何获取嵌套组件的状态对象?我知道我可以把函数传递给嵌套的组件来更新父状态,但也许有更好的解决方案?
tkqqtvp11#
`Component A import React, { useState } from 'react'; export default function componentA(){ const [componentA, setcomponentA] = useState("A Component") return( <> <div> <ComponentB Data = {componentA} /> </div> </> ) }Component B import React, { useState } from 'react';export default function componentB({Data}){return( <> <div> <h1>{Data}</h1> </div> </> ) }`
`Component A
import React, { useState } from 'react';
export default function componentA(){
const [componentA, setcomponentA] = useState("A Component")
return(
<>
<div>
<ComponentB Data = {componentA} />
</div>
</>
)
}
Component B
export default function componentB({Data}){
<h1>{Data}</h1>
}`
7y4bm7vi2#
在React中,当表单提交时,有几个选项可以管理和收集嵌套组件的状态。以下是一些常见的方法
// Component A (parent)function FormComponent() { const [formData, setFormData] = useState({/* initial form data */}); const handleFormSubmit = () => { // Access formData and submit the form } return ( <div> <ComponentB formData={formData} setFormData={setFormData} /> {/* Other form fields */} <button onClick={handleFormSubmit}>Submit</button> </div> );}// Component B (child)function ComponentB({ formData, setFormData }) { const handleFileChange = (event) => { // Update formData with the file data setFormData({ ...formData, file: event.target.files[0] }); } return ( <input type="file" onChange={handleFileChange} /> );}
// Component A (parent)
function FormComponent() {
const [formData, setFormData] = useState({/* initial form data */});
const handleFormSubmit = () => {
// Access formData and submit the form
return (
<ComponentB formData={formData} setFormData={setFormData} />
{/* Other form fields */}
<button onClick={handleFormSubmit}>Submit</button>
);
// Component B (child)
function ComponentB({ formData, setFormData }) {
const handleFileChange = (event) => {
// Update formData with the file data
setFormData({ ...formData, file: event.target.files[0] });
<input type="file" onChange={handleFileChange} />
2条答案
按热度按时间tkqqtvp11#
7y4bm7vi2#
在React中,当表单提交时,有几个选项可以管理和收集嵌套组件的状态。以下是一些常见的方法