React 处理表单组件

Posted

技术标签:

【中文标题】React 处理表单组件【英文标题】:React handling Form Components 【发布时间】:2020-10-03 20:05:49 【问题描述】:

好的,我正在尝试在另一个页面中提交两个不同的表单作为独立组件 我只有一个按钮来提交两种表单的数据的组件。 所以我很难在页面组件中拥有一个共享状态,我需要在提交时将每个表单组件的整个状态传递给我的页面组件。 任何人都可以为我的用例推荐最佳实践吗?

render() 
    return (
      <div as=Row className="container" style=formStyle>
        <Col>
          <Form onSubmit=this.submitData>
            <TripForm />
            <PostForm heading="add your first blog entry" />
            <Button variant="dark" type="submit">
              Summing up
            </Button>
          </Form>
        </Col>
      </div>
    );
  

【问题讨论】:

我建议在每个字段的模糊中,通过将函数作为道具传递到此组件中,然后在单击提交时提交数据 【参考方案1】:

在父组件中定义你的状态并在 props 中传递

class PageComponent = 

  state =   //define your state here

  handleChange = () =>  // define a function that handles changing state

  submitData = () => 
    // in here you can access this.state and then submit form data with that state
  

render() 
    return (
      <div as=Row className="container" style=formStyle>
        <Col>
          <Form onSubmit=this.submitData>
            <TripForm handleChange=handleChange someState=someState />
            <PostForm heading="add your first blog entry" handleChange=handleChange someState=someState/>
            <Button variant="dark" type="submit">
              Summing up
            </Button>
          </Form>
        </Col>
      </div>
    );
  

我还定义了someState,您可以将其作为道具传递给子/表单组件。一旦你在其中使用handleChange 设置状态,它将在父组件中设置状态,你可以使用该状态submitData

【讨论】:

以上是关于React 处理表单组件的主要内容,如果未能解决你的问题,请参考以下文章

React 处理表单组件

React-表单处理

无法覆盖React组件内的表单的onSubmit处理程序

React-表单处理

react 表单处理

React 表单处理