【问题标题】:Unable to edit form when loaded with values using Semantic UI React使用 Semantic UI React 加载值时无法编辑表单
【发布时间】:2020-10-06 09:31:03
【问题描述】:

我有一个在其字段中加载了某些值的表单。呈现表单时,我无法输入字段的值或删除现有的默认值。基本上,我试图在我的表单中添加一个更新操作,其中值显示在字段中(例如,单击编辑按钮时,表单会显示值)。

我尝试使用 onChange 方法捕获事件,但它没有按预期工作。 默认值作为 props 从其父级获取并传递给表单的 value 参数。我正在为表单使用语义 UI React 组件。

这是我正在尝试实现的代码和框中的示例: codesandbox

在上面的例子中,变量被传递给表单中的值。

【问题讨论】:

    标签: javascript reactjs semantic-ui-react


    【解决方案1】:

    如果您查看错误,它会清楚地显示:A component is changing an uncontrolled input of type text to be controlled。这意味着您必须在初始化时将name, email 的值存储在状态中,并在onChange 事件中更改这些值。并且不只更新 onChange 上的值。

    import React, { Component } from "react";
    import { Form } from "semantic-ui-react";
    
    class FormExampleClearOnSubmit extends Component {
      state = {
        name: "james",
        email: ""
      };
    
      handleChange = (e, { name, value }) => this.setState({ [name]: value });
    
      handleSubmit = () => this.setState({ email: "", name: "" });
    
      render() {
        const { name, email } = this.state;
    
        return (
          <Form onSubmit={this.handleSubmit}>
            <Form.Group>
              <Form.Input
                placeholder="Name"
                name="name"
                value={name}
                onChange={this.handleChange}
              />
              <Form.Input
                placeholder="Email"
                name="email"
                value={email}
                onChange={this.handleChange}
              />
              <Form.Button content="Submit" />
            </Form.Group>
          </Form>
        );
      }
    }
    
    export default FormExampleClearOnSubmit;
    

    【讨论】:

      猜你喜欢
      • 2021-07-21
      • 2017-10-10
      • 2018-11-10
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多