Javascript 如何在React JS中处理输入选择的更改值?

Javascript 如何在React JS中处理输入选择的更改值?,javascript,reactjs,reactstrap,Javascript,Reactjs,Reactstrap,我正在尝试建立一个表单 我有一个类extensed React.Component,它包含一个构造函数,如下所示: constructor(props) { super(props); this.state = { name: '', dataId: '', isactive: '', }; this.handleCreateChange = this.handleCreateChange.bind(this); } data

我正在尝试建立一个表单

我有一个
类extensed React.Component
,它包含一个
构造函数,如下所示:

constructor(props) {
    super(props);
    this.state = {
      name: '',
      dataId: '',
      isactive: '',
    };
    this.handleCreateChange = this.handleCreateChange.bind(this);
}
data = [
  {
    _id: "a1G23e25vaus6DVa7Sv",
    volume: 100,
  },
  {
    _id: "e1D23f25vaus6ASa7saA",
    volume: 100,
  },
]
这是在表单提交后执行的方法 (我使用dispatch执行我的操作):

此方法可以处理所有输入更改:

handleCreateChange = e => {
    const target = e.target;
    const value = target.type === "checkbox" ? target.checked : target.value;
    const name = target.name;

    this.setState({
      [name]: value
    });
};
render()
函数中,在
返回之前,我声明:

const { data } = this.props;
道具中的结构
数据
如下所示:

constructor(props) {
    super(props);
    this.state = {
      name: '',
      dataId: '',
      isactive: '',
    };
    this.handleCreateChange = this.handleCreateChange.bind(this);
}
data = [
  {
    _id: "a1G23e25vaus6DVa7Sv",
    volume: 100,
  },
  {
    _id: "e1D23f25vaus6ASa7saA",
    volume: 100,
  },
]
返回
中,我有一个表单,看起来像这样:
(我使用了
reactstrap
,这就是为什么我的标签是这样的:
,等等):


state
name
isactive的值可以正常工作。
但是
dataId
的值只是一个空字符串,


我只想从
const{data}=this.props设置\u id
作为
dataId
状态下的
value

我注意到您使用了输入,大写字母I似乎是一个自定义组件。我认为您的大写输入组件可能不一定与小写选项组件配对。

或者您可以尝试将onchange回调和名称放在所有这些选项组件上

或者您的下拉列表中是否有自定义的选择组件

对于受控组件,value属性和onChange回调都是在input/select元素上设置的。
查看这些组件在react中的使用方式:

取决于reactstrap如何为其所具有的select调用onChange,当您在onChange中记录名称和值时,这是否是您对select的预期?此外,在React中使用正常选择时,您可以通过
将当前值传递到选择中。我假设reactstrap有一个类似的机制。首先,您可以在handleCreateChange中添加一个日志,并查看在选择更改的情况下传递的值。我并不真正理解reactstap
select Input
机制,但似乎机制是相同的@Dominicyes我试着用这个来显示日志输入值,但是它仍然有一个空字符串@mytwocents,如果你能添加一个fiddle或codepen,这将有助于调试。
name: "ad"
dataId: ""
isactive: true