Javascript 如何正确映射带有单独单选按钮表单元素的React元素?
我正在尝试创建一个卡片元素,用户可以在其中对图像投票“是”、“否”或“可能”。现在它的读数就像单选按钮一样,一张图片有90个选项,而不是30个单独的带有3个选项的按钮。如何映射每张卡,使表单特定于图像?数组将读取为Javascript 如何正确映射带有单独单选按钮表单元素的React元素?,javascript,reactjs,forms,Javascript,Reactjs,Forms,我正在尝试创建一个卡片元素,用户可以在其中对图像投票“是”、“否”或“可能”。现在它的读数就像单选按钮一样,一张图片有90个选项,而不是30个单独的带有3个选项的按钮。如何映射每张卡,使表单特定于图像?数组将读取为 { userChoices: { characterName[0]:choice.value, characterName[1]:choice.value, .... }} const choiceCard=characterData.map((字符,键)=> {cha
{ userChoices: {
characterName[0]:choice.value,
characterName[1]:choice.value,
....
}}
const choiceCard=characterData.map((字符,键)=>
{character.name}
对
不
大概
);
你离你想去的地方很近了,这里只需要处理两件事:
<input
key={someID}
type="radio"
value={choice}
checked={this.state.choice === choice}
onChange={() => this.handleChange(choice)}
/>
const choices = [
"Yes",
"No",
"Maybe"
]
const choiceCard = characterData.map((character, key) => {
return (
<label key={character.id}>
{character.name}
{choices.map(choice => {
return (
<input
key={choice}
type="radio"
value={choice}
checked={this.state.userChoices[key] === choice}
onChange={() => this.handleChange(choice, key)}
/>
);
})}
</label>
);
});
(见附件)
将此应用于您的问题,您将得到如下结果:
<input
key={someID}
type="radio"
value={choice}
checked={this.state.choice === choice}
onChange={() => this.handleChange(choice)}
/>
const choices = [
"Yes",
"No",
"Maybe"
]
const choiceCard = characterData.map((character, key) => {
return (
<label key={character.id}>
{character.name}
{choices.map(choice => {
return (
<input
key={choice}
type="radio"
value={choice}
checked={this.state.userChoices[key] === choice}
onChange={() => this.handleChange(choice, key)}
/>
);
})}
</label>
);
});
这里有一个快速而肮脏的代码笔,你可以用它来帮助你理解:Legend!设置第二个。地图把我绊倒了!!这太完美了
handleChange = (choice, key) => {
this.setState(prevState => ({
userChoices: { ...prevState.userChoices, [key]: choice }
}));
};