当前位置: 首页 > 知识库问答 >
问题:

在react js中使用map生成的单选按钮设置值

宫元徽
2023-03-14

我正在努力:

  1. 使用React中的映射从常量数组生成单选按钮
  2. 让用户选择一个并使用handleChange()设置状态

通过下面的代码,我能够实现1,但是由于某种原因,当我尝试用handleChange()显示时,我看到它是一个空字符串。

你能帮帮我吗?

谢谢

import React, { Component } from "react";

const members = ["Araki", "Ibata", "Fukutome", "Woods", "Alex", "Tatsunami"];

export default class MyRadio extends Component {
  constructor(props) {
    super(props);

    this.state = {
      lastName: "",
    };
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange(e) {
    console.log("handleChange() e:" + e.target.value);

    this.setState({
      [e.target.name]: e.target.value,
    });
  }
 

  render() {
    console.log("render");
    return (
      <form>
        <div>
          {members.map((item) => (
            <React.Fragment>
              <label htmlFor={item.name}> {item}</label>
              <input
                name="lastName"
                key={item.name}
                id={item.name}
                value={item.name}
                type="radio"
                onChange={this.handleChange}
              />
            </React.Fragment>
          ))}
        </div>
        <div></div>
      </form>
    );
  }
}

共有1个答案

姜泳
2023-03-14

要使此解决方案可行,您必须按以下方式更改成员

const members = [{name: "Araki", name: "Ibata", ...}];

数组应该是一个对象数组,每个对象都有name属性,因为在映射中,您所期望的name应该是item.name

或者您必须在不使用item.name的情况下更改循环。您必须使用item

{members.map((item) => (
    <React.Fragment>
          <label htmlFor={item}> {item}</label>
          <input
            name="lastName"
            key={item}
            id={item}
            value={item}
            type="radio"
            onChange={this.handleChange}
          />
    </React.Fragment>
))}
 类似资料:
  • 问题内容: 我是ReactJS的新手,很抱歉,如果听起来不对。我有一个根据接收到的数据创建多个表行的组件。 列中的每个单元格都有一个单选复选框。因此,用户可以从现有行中选择一个和一个。选项应在页脚中显示。那就是我被困住的地方。 在jQuery中,我可以做一些事情,例如选择一个单选复选框类型并将其插入第一个页脚单元格。 但是肯定有一种Reactjs方式,我完全不知道吗?非常感谢 问题答案: 渲染的任

  • 在jQuery中,我可以执行这样的操作,以获得一个单选复选框类型的选择,并将其插入到第一个页脚单元格中。 但肯定有一种Reactjs方式,我完全不知道?多谢

  • 问题内容: 我需要在表单中设置一个单选按钮;必须使用来自AJAX响应的值进行检查。 我的AJAX回应是。“手动”或“自动”可能是其值。 更新: 所以我尝试了一些不同的方法,但是我无法弄清楚。 单程 : 其他方式: 这就是我的ajax成功函数用来填充表单值的方式。 这是HTML单选按钮: 如何正确执行此操作? 问题答案: 用 样品: 编辑: 更改。 至

  • 问题内容: 我需要建立一个系统,以按选择的票数更改总价。我创建了一些单选按钮来选择票证编号。问题是未设置默认值,并且加载时结果为null。 请参阅我的jsfiddle。 问题答案: 设置默认值与ngInit 演示:小提琴

  • 我想创建一个单选按钮风格的投票系统使用的图标在Flutter(Dart),看起来像这样:投票图标 这个概念很简单:页面将显示一部电影,然后用户可以使用上面的图标按钮对该电影进行投票。当进行投票时,图标将变为红色,影片将添加到数组中。 我正在纠结的棘手部分是: 更改选定后图标的颜色 确保其他图标保持黑色 如果用户选择了其他选项,则将其他图标更改为黑色 提前道谢!