javascript - 在 React 中使用单个处理程序函数设置表单中的输入状态

标签 javascript reactjs

我是 React 的新手,我找不到一种简单的方法来创建单个处理程序函数来设置表单中两个输入的状态。这是我目前所拥有的:

<form onSubmit="onSave">
  <input type="text" value={this.state.name} onChange={this.setValue('name')}>
  <input type="text" value={this.state.bio onChange={this.setValue('bio')}>
</form>

JS

React.createClass({
  getInitialState() {
    return {
      name: '',
      bio: '',
    }
  },
  setValue: function(key) {
    const self = this;
    return function(e) {
      var o = {};
      o[key] = e.target.value;
      self.setState(o);
    }
  },
  onSave() {
    console.log(this.state);
  }
});

我遇到的问题是只有一个输入被更新。我也知道那里的表单组件,但我真的很想知道这样的事情是否可行,因为我的用例非常简单。

最佳答案

如果我理解这个问题,您可以为您的输入命名,然后执行 setState({[e.target.name]: e.target.value})

关于javascript - 在 React 中使用单个处理程序函数设置表单中的输入状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40748405/

相关文章:

javascript - 标题来自 Id Youtube API v3?

php - 如何确定应用程序是在 Facebook 内部还是在 Facebook 外部运行

reactjs - 用于 webpack 的 create-react-app markdown-loader

javascript - 使用 redux-thunk 和 redux-observable

javascript - Gatsby :在 Facebook 上分享 -> 图片太小

Javascript:用数组中的图像填充表格

javascript - 不同 '&lt;script&gt;' 标签中的相同变量不会发生冲突吗?

javascript - 匹配递增的数字

javascript - 使用 React 为每个对象创建一个模态弹出窗口

javascript - 如何在 React 中使用 API 进行异步调用?