【发布时间】:2021-03-07 09:08:19
【问题描述】:
当用户选中该输入框的复选框时,我的输入框将被启用。然后我想在那个特定的输入框中输入,但是当我在一个特定的输入框中时,我的文本会显示在所有输入中。
import React, { useState } from "react";
//some imports related to checkbox
export default function componentA() {
//input
const [value, setValue] = useState("");
//checkbox group
const [checkedOptions, setCheckedOptions] = useState({});
const onOSelect = (event) => {
const item = event.target.name;
const isChecked = event.target.checked;
setCheckedOptions({
...checkedOptions,
[item]: isChecked,
});
};
//data
const data = [
{ label: "Rock", name: "Rock" },
{ label: "rambo", name: "rambo" },
{ label: "phone", name: "phone" },
]
const handleChange = (event) => {
setValue(event.target.value);
};
return (
<div >
<div>
<Card>
<Checkbox
checkedOptions={checkedOptions}
groupLabel="Checkbox group label"
onChange={onOSelect}
options={data}
/>
</Card>
</div>
<Card >
<div >
{data.map((item, key) => (
<div key={key.name} >
<input
label={item.name}
name={item.name}
onChange={handleChange}
placeholder="Placeholder"
isDisabled={!checkedOptions[item.name]}
value={value}
/>
</div>
))}
</div>
</Card>
</div>
);
}
寻找解决方案,如何仅在相关输入字段中显示我输入的文本并在特定状态下获取该值。
【问题讨论】:
-
您需要将值状态转换为map,并将相关的片段传递到每个输入中。
-
您应该包括电子邮件、电话和您所在州的邮件。在您的 handleChange 函数中,使用 event.target.name 查找已更新的 TextBox,并相应地更新您的状态。
标签: javascript reactjs checkbox ecmascript-6