javascript React -如何从嵌套组件中获取状态对象?

jc3wubiy  于 2023-10-14  发布在  Java
关注(0)|答案(2)|浏览(138)

我开始在React中开发表单,我已经将表单的每个字段都作为一个单独的组件。所以,从下面的图片:组件A -是具有提交功能的表单组件B -是文件输入(例如)
点击Submit按钮后,如何获取嵌套组件的状态对象?我知道我可以把函数传递给嵌套的组件来更新父状态,但也许有更好的解决方案?

tkqqtvp1

tkqqtvp11#

  1. `Component A
  2. import React, { useState } from 'react';
  3. export default function componentA(){
  4. const [componentA, setcomponentA] = useState("A Component")
  5. return(
  6. <>
  7. <div>
  8. <ComponentB Data = {componentA} />
  9. </div>
  10. </>
  11. )
  12. }
  13. Component B
  14. import React, { useState } from 'react';
  15. export default function componentB({Data}){
  16. return(
  17. <>
  18. <div>
  19. <h1>{Data}</h1>
  20. </div>
  21. </>
  22. )
  23. }`
展开查看全部
7y4bm7vi

7y4bm7vi2#

在React中,当表单提交时,有几个选项可以管理和收集嵌套组件的状态。以下是一些常见的方法

  1. // Component A (parent)
  2. function FormComponent() {
  3. const [formData, setFormData] = useState({/* initial form data */});
  4. const handleFormSubmit = () => {
  5. // Access formData and submit the form
  6. }
  7. return (
  8. <div>
  9. <ComponentB formData={formData} setFormData={setFormData} />
  10. {/* Other form fields */}
  11. <button onClick={handleFormSubmit}>Submit</button>
  12. </div>
  13. );
  14. }
  15. // Component B (child)
  16. function ComponentB({ formData, setFormData }) {
  17. const handleFileChange = (event) => {
  18. // Update formData with the file data
  19. setFormData({ ...formData, file: event.target.files[0] });
  20. }
  21. return (
  22. <input type="file" onChange={handleFileChange} />
  23. );
  24. }
展开查看全部

相关问题