reactjs - 如何在不提交的情况下获得输入 onchange 结果?
问题描述
我尝试使用 useState 获取 onChange 值,我应该循环输入标签,但标签看起来相同,没有人知道要添加多少输入,所以我想做的是在没有提交按钮的情况下推送数组。
这是测试代码,我将对其进行映射,我尝试这样做:
import React, { useState } from "react";
const Test = () => {
const [labelName, setLabelName] = useState("");
const [labelContainer, setLabelContainer] = useState([]);
const getTextValue = e => {
setLabelName(e.target.value);
setLabelContainer([...labelContainer, labelName]);
};
return (
<div>
num1 YAXIS:
<input type="text" onChange={getTextValue} />
num2 YAXIS:
<input type="text" onChange={getTextValue} />
num3 YAXIS:
<input type="text" onChange={getTextValue} />
<h1>num1 YAXIS:{labelContainer[0]}</h1>
<h1>num2 YAXIS:{labelContainer[1]}</h1>
<h1>num3 YAXIS:{labelContainer[2]}</h1>
</div>
);
};
export default Test;
但我无法得到每个结果。
解决方案
这是你需要的吗?
import React, { useState } from "react";
export default function Test(props){
const [labelName, setLabelName] = useState("");
const [labelContainer, setLabelContainer] = useState([]);
const getTextValue = (e,index) => {
setLabelName(e.target.value);
let temp=JSON.parse(JSON.stringify(labelContainer));
temp[index]=e.target.value;
setLabelContainer(temp);
};
return (
<div>
num1 YAXIS:
<input type="text" onChange={(e)=>getTextValue(e,0)} />
num2 YAXIS:
<input type="text" onChange={(e)=>getTextValue(e,1)} />
num3 YAXIS:
<input type="text" onChange={(e)=>getTextValue(e,2)} />
<h1>num1 YAXIS:{labelContainer[0]}</h1>
<h1>num2 YAXIS:{labelContainer[1]}</h1>
<h1>num3 YAXIS:{labelContainer[2]}</h1>
</div>
);
}
推荐阅读
- vba - VBA - 如何避免在选择案例语句中复制粘贴代码?
- apache-kafka - Apache kafka 消费者停止和启动之间的消息丢失
- laravel - 比较 Laravel Eloquent 请求中的属性
- node.js - DynamoDB 分页、未知错误、异常或失败
- java - 尝试在空对象引用上调用接口方法'java.lang.Object java.util.List.remove(int)' | 试图从回收站视图中删除
- ruby-on-rails - 使用 rbenv 和 rails 5.2 修复“您的 Ruby 版本是 2.4.4,但您的 Gemfile 指定 2.5.1”错误
- windows - 为什么我不能从我的私有存储库克隆?
- java - 执行请求后 MockMvc 似乎清除了 SecurityContext (java.lang.IllegalArgumentException: Authentication object cannot be null)
- sql-server - 在连接中引用另一个表中的表名列 - SQL Server
- hazelcast - 同一台机器上有多个 Hazelcast 实例?