Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 正在尝试组合reactjs中event.target.value捕获的输入值_Arrays_Reactjs - Fatal编程技术网

Arrays 正在尝试组合reactjs中event.target.value捕获的输入值

Arrays 正在尝试组合reactjs中event.target.value捕获的输入值,arrays,reactjs,Arrays,Reactjs,我试图检索用户通过event.target.value输入的组合输入值,然后将其放入如下数组中,但我得到的是用户输入的每个字符,并存储在一个数组中 handleChangeHN(event) { event.preventDefault(); let { nameArray } = this.state; this.setState({ nameArray: nameArray.concat(event.target.value;) }) console.log

我试图检索用户通过event.target.value输入的组合输入值,然后将其放入如下数组中,但我得到的是用户输入的每个字符,并存储在一个数组中

 handleChangeHN(event) {
    event.preventDefault();
    let { nameArray } = this.state;
    this.setState({ nameArray: nameArray.concat(event.target.value;) })
    console.log(`Entered Name :`, nameArray);
  }

无论何时调用handleChange函数,它都会创建一个新数组,并用新输入的输入连接旧数组,这样您就可以得到如下输出

Array [ "t" ]
Array [ "t", "te" ]


Array(3) [ "t", "te", "tes" ]
在handleChange函数之外创建数组,并尝试如下设置状态

this.setState({nameArray:e.target.value})

在onChange事件中调用handleChangeHN函数时,请同时传递数组索引。 假设您有多个输入字段,并且希望将每个字段的值存储在一个数组中。然后第一个输入字段值将存储在数组的0索引中。然后编写
onChange={(e)=>this.handleChangeHN(e,0)}
liek this并编写如下handleChange函数

 handleChangeHN(event,arrayIndex) {
  event.preventDefault();
  let { nameArray } = this.state;
  nameArray[arrayIndex] = event.target.value;
  this.setState({ nameArray},()=>{console.log(`Entered Name :`, nameArray);})

}

nameArray已在handleChange函数之外的状态中声明/创建。你能说得更准确些吗。另外,当我执行此操作时.setState({nameArray:e.target.value})不会将其视为数组,而只是覆盖下一个输入值。您理解得很好,但此解决方案不知何故对我不起作用。您得到的输出是什么?请参阅下面的输出。现在,不再追加第二个输入值,而是替换第一个输入值数组[“T”]数组[“Te”]数组[“Tes”]数组[“测试”]Createdevice.jsx:84数组:数组[“S”]数组[“Sa”]数组[“Samp”]数组[“Samp”]数组[“Sampl”]数组[“Sample”]``如果您为每个字段传递的索引不同于您将获得的期望输出
 handleChangeHN(event,arrayIndex) {
  event.preventDefault();
  let { nameArray } = this.state;
  nameArray[arrayIndex] = event.target.value;
  this.setState({ nameArray},()=>{console.log(`Entered Name :`, nameArray);})

}