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
,这就是为什么我的标签是这样的:
,
,等等):
statename
和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中添加一个日志,并查看在选择更改的情况下传递的值。我并不真正理解reactstapselect Input
机制,但似乎机制是相同的@Dominicyes我试着用这个来显示日志输入值,但是它仍然有一个空字符串@mytwocents,如果你能添加一个fiddle或codepen,这将有助于调试。
name: "ad"
dataId: ""
isactive: true