Javascript ReactJS在动态多输入中获取值

Javascript ReactJS在动态多输入中获取值,javascript,arrays,reactjs,loops,object,Javascript,Arrays,Reactjs,Loops,Object,我已经做了动态输入现在我的问题是得到每个输入的值,但它是一个多输入?我怎样才能做到这一点。这是jsfiddle perRow() { return this.state.values.map((el,i) => <tr key={i}> <td className="col-md-4"> <div className=

我已经做了动态输入现在我的问题是得到每个输入的值,但它是一个多输入?我怎样才能做到这一点。这是jsfiddle

 perRow() {
        return this.state.values.map((el,i) => 

                <tr key={i}>

                    <td className="col-md-4">
                        <div className="form-group">
                            <input type="text" className="form-control" placeholder="Name" value={el||''} onChange={this.handleChange.bind(this, i)}/>
                        </div>
                        <div className="form-group">
                            <input type="text" className="form-control" placeholder="Hourly Rate" />
                        </div>                        
                        <p><strong>Total hours:</strong> 0:00</p>
                        <p><strong>Total pay:</strong> $0.00</p> 
                            <button className="btn btn-danger do-not-print" onClick={this.removeClick.bind(this, i)}>Remove employee</button>
                    </td>
                    <td>Monday</td>
                    <td><input type="text" className="form-control" /></td>
                    <td><input type="text" className="form-control" /></td>
                    <td><input type="text" className="form-control" /></td>
                    <td>0:00</td>
                    <td>$0.00</td>
                </tr>

        )
    }
perRow(){
返回此.state.values.map((el,i)=>
总小时数:0:00

总薪酬:$0.00

解雇员工 星期一 0:00 $0.00 ) }

首先,创建
构造函数
,我们将创建一个onChange函数,因此需要在构造函数内部绑定它

constructor(props){
    super(props);
    this.state = {
        username: '',
        password: '',
    };
    this.onChange = this.onChange.bind(this);
}
然后我们需要创建
onChange
函数,它将按名称处理

onChange(e){
        this.setState({ [e.target.name] : e.target.value });
    }
最后,使用name属性调用onChange函数,您需要在状态中定义输入名称以避免任何问题

<td><input type="text" className="form-control" name="username" onChange={this.onChange} /></td>

<td><input type="text" className="form-control" name="password" onChange={this.onChange} /></td>
3.另一种方法,您可以像这样绑定它

onChange = (e) => {
        this.setState({ [e.target.name] : e.target.value });
    }
onChange(e){
   this.setState({ [e.target.name] : e.target.value });
}       

<input 
    type="text" 
    name="username" 
    onChange={this.onChange.bind(this)} 
/>
onChange(e){
this.setState({[e.target.name]:e.target.value});
}       
4_u传递数据的另一种替代方法

onChange(e,data){
console.log(data); // result is "something"
   this.setState({ [e.target.name] : e.target.value });
}       

<input 
    type="text" 
    name="username" 
    onChange={(e)=>this.onChange(e, 'something')} 
/>
onChange(e,数据){
console.log(data);//结果是“某物”
this.setState({[e.target.name]:e.target.value});
}       
this.onChange(e,'something')}
/>

首先,创建
构造函数
,我们将创建一个onChange函数,因此我们需要在构造函数内部绑定它

constructor(props){
    super(props);
    this.state = {
        username: '',
        password: '',
    };
    this.onChange = this.onChange.bind(this);
}
然后我们需要创建
onChange
函数,它将按名称处理

onChange(e){
        this.setState({ [e.target.name] : e.target.value });
    }
最后,使用name属性调用onChange函数,您需要在状态中定义输入名称以避免任何问题

<td><input type="text" className="form-control" name="username" onChange={this.onChange} /></td>

<td><input type="text" className="form-control" name="password" onChange={this.onChange} /></td>
3.另一种方法,您可以像这样绑定它

onChange = (e) => {
        this.setState({ [e.target.name] : e.target.value });
    }
onChange(e){
   this.setState({ [e.target.name] : e.target.value });
}       

<input 
    type="text" 
    name="username" 
    onChange={this.onChange.bind(this)} 
/>
onChange(e){
this.setState({[e.target.name]:e.target.value});
}       
4_u传递数据的另一种替代方法

onChange(e,data){
console.log(data); // result is "something"
   this.setState({ [e.target.name] : e.target.value });
}       

<input 
    type="text" 
    name="username" 
    onChange={(e)=>this.onChange(e, 'something')} 
/>
onChange(e,数据){
console.log(data);//结果是“某物”
this.setState({[e.target.name]:e.target.value});
}       
this.onChange(e,'something')}
/>

是的,您可以获得类似于
this.state.values.join(',')的输入值。

因为您的输入值以数组的形式存在于状态值中

 handleChange(i, event) {
            let values = [...this.state.values];
            values[i] = event.target.value;
            this.setState({ values });
            console.log(this.state.values)
        }

勾选下面的示例,这将帮助您确定

是的,您可以获得输入值,如
this.state.values.join(',')

因为您的输入值以数组的形式存在于状态值中

 handleChange(i, event) {
            let values = [...this.state.values];
            values[i] = event.target.value;
            this.setState({ values });
            console.log(this.state.values)
        }

勾选下面的示例,这肯定会帮助您

这里是使用react hook的工具,希望这也能有所帮助

const [value, setValue] = useState([])

const handleChange = (i, event) => {
 let values = [...value];
 values[i] = e.target.value;

 setValue(values)
 console.log(values)
}
获取多个输入文本中的值的步骤:

  • 使用空元素数组创建状态
  • 当onChange运行时
  • 状态复制到变量mutable中。es6中的示例
    let values=[…value]
  • e.target.value
    完成时
  • 根据索引总数,
    保存在
    变量中
  • 然后,使用
    setValue

  • 下面是使用react钩子的工具,希望这也有帮助

    const [value, setValue] = useState([])
    
    const handleChange = (i, event) => {
     let values = [...value];
     values[i] = e.target.value;
    
     setValue(values)
     console.log(values)
    }
    
    获取多个输入文本中的值的步骤:

  • 使用空元素数组创建状态
  • 当onChange运行时
  • 状态复制到变量mutable中。es6中的示例
    let values=[…value]
  • e.target.value
    完成时
  • 根据索引总数,
    保存在
    变量中
  • 然后,使用
    setValue

  • 请看我的护照。我的问题是状态我将有多个用户名和密码你是说你有两个问题吗?上面的答案将使您能够根据输入属性nameyai创建多个输入,但我的问题是它是动态的。示例:在一行中,我输入了用户名和密码,然后当我单击“添加行”按钮时,我将有另一个用户名和密码输入。在我当前的代码中,我已经解决了输入行的添加问题,现在我的问题是获取每个对象数组中的值。好的,我现在明白了,您只想保留以前的数据并添加新数据。我说得对吗?比如['PrevData','NewDate','newnewnew'],请查看我的JSFIDLE。我的问题是状态我将有多个用户名和密码你是说你有两个问题吗?上面的答案将使您能够根据输入属性nameyai创建多个输入,但我的问题是它是动态的。示例:在一行中,我输入了用户名和密码,然后当我单击“添加行”按钮时,我将有另一个用户名和密码输入。在我当前的代码中,我已经解决了输入行的添加问题,现在我的问题是获取每个对象数组中的值。好的,我现在明白了,您只想保留以前的数据并添加新数据。我说得对吗?像['PrevData'、'NewDate'、'NewNew']一样,动态但单个元素可能重复。我需要有关动态多输入元素的帮助,如果您有任何疑问,请告诉我:)@MayankShukla Cool!谢谢!谢谢你的帮助!是的,我错过了一些东西!动态但单个元素的可能重复。我需要有关动态多输入元素的帮助,如果您有任何疑问,请告诉我:)@MayankShukla Cool!谢谢!谢谢你的帮助!是的,我错过了一些东西!