输入字段 Onchange 不允许输入

时间:2021-03-29 09:20:43

标签: reactjs

我有一个简单的输入字段,它从 onComponentMount 获取一个值。现在我希望用户能够更改值但它不起作用。这是我的代码:

  componentDidMount = async () => {
    const IPAddress = await publicIp.v4();
    this.setState({ Client_IP: IPAddress })
  }

  eventHandler = () => (e: any) => {
    e.persist()
    this.setState((prevState: any) => ({
      IPObject: {
        ...prevState.IPObject,
        IPList: e?.target?.value
      }
    }));
  }

    <Input placeholder="IP address" required={true}
      value={this.state.Client_IP} onChange={this.eventHandler()}></Input>

2 个答案:

答案 0 :(得分:1)

将您的输入更改为:

onChange={this.eventHandler}

当你使用括号时,你必须像箭头函数一样调用它:

onChange={() => this.eventHandler()}

并确保更改您想要的字段,在该 eventHandler

答案 1 :(得分:1)

您的代码不断调用 eventHandler 函数。

查看此处 docs 以了解在 React 中使用 JSX 的 eventHandling

正确的语法是

  <Input placeholder="IP address" required={true} value={this.state.Client_IP} onChange={() => this.eventHandler()}></Input>

  <Input placeholder="IP address" required={true} value={this.state.Client_IP} onChange={this.eventHandler}></Input>