Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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
Javascript 无法解决:将对象数组映射到按钮元素(React)_Javascript_Reactjs_Oop_Functional Programming - Fatal编程技术网

Javascript 无法解决:将对象数组映射到按钮元素(React)

Javascript 无法解决:将对象数组映射到按钮元素(React),javascript,reactjs,oop,functional-programming,Javascript,Reactjs,Oop,Functional Programming,因此,我在使用map方法创建一组按钮时遇到了困难。我所做的是创建一个带有按钮id、src等的对象数组,并希望将该数组映射到我的按钮上 它不断告诉变量未定义并抛出错误。任何帮助都将不胜感激 以下是我目前的代码: import React from "react"; import ReactDom from "react-dom"; const sounds = [ { idnum: "1", id: "Q", src: "1.html", }, { i

因此,我在使用map方法创建一组按钮时遇到了困难。我所做的是创建一个带有按钮id、src等的对象数组,并希望将该数组映射到我的按钮上

它不断告诉变量未定义并抛出错误。任何帮助都将不胜感激

以下是我目前的代码:

import React from "react";
import ReactDom from "react-dom";

const sounds = [
  {
    idnum: "1",
    id: "Q",
    src: "1.html",
  },
  {
    idnum: "1",
    id: "W",
    src: "",
  },
  {
    idnum: "1",
    id: "E",
    src: "",
  },
  {
    idnum: "1",
    id: "A",
    src: "",
  },
  {
    idnum: "1",
    id: "S",
    src: "",
  },
  {
    idnum: "1",
    id: "D",
    src: "",
  },
  {
    idnum: "1",
    id: "Z",
    src: "",
  },
  {
    idnum: "1",
    id: "X",
    src: "",
  },
  {
    idnum: "1",
    id: "C",
    src: "",
  },
];

class Button extends React.Component {
  constructor(props) {
    super(props);
  }

  render() {
    const buttonData = this.sounds.map((info) => (
      <button>
        {info[id]}+{info[idnum]}
      </button>
    ));

    return { buttonData };
  }
}
export default Button;

谢谢

访问方法错误,请在use.dot运算符的大括号中使用字符串

render() {
    const buttonData = this.sounds.map((info) => (
      <button>
        {info.id}+{info.idnum}
      </button>
    ));

    return { buttonData };
  }

全部:


你可以通过简单地使用sound.map获得声音数组,而不是this.sounds.mapHi,我试过了。下面是它抛出的错误:错误:对象作为React子对象无效。找到:对象的键为{buttonData}。如果要呈现子级集合,请改用数组。您可以使用codesandbox或codepen为此创建一个数组,或者在此处显示发生的问题。您好,因此我尝试了这两种方法,得到的错误是TypeError:无法读取未定义的属性“map”。当我删除此项时,错误是error:Objects作为React子对象无效。found:object具有键{buttonData}。如果要呈现子对象集合,请改用数组。@Pruthvi请为此创建一个小演示。这里一定有我们遗漏的东西。你为什么要用这个。声音不是课堂的一部分。我更新了索尔。@palaѕѕѕѕ-我希望这一切都很好。@xdeepakv超级兄弟!刚看到你的密码笔。谢谢你的帮助!
render() {
    const buttonData = sounds.map((info) => (
      <button>
        {info["id"]}+{info["idnum"]}
      </button>
    ));

    return { buttonData };
  }
// import React from "react";
// import ReactDom from "react-dom";

const sounds = [
  {
    idnum: "1",
    id: "Q",
    src: "1.html",
  },
  {
    idnum: "1",
    id: "W",
    src: "",
  },
  {
    idnum: "1",
    id: "E",
    src: "",
  },
  {
    idnum: "1",
    id: "A",
    src: "",
  },
  {
    idnum: "1",
    id: "S",

    src: "",
  },
  {
    idnum: "1",
    id: "D",
    src: "",
  },
  {
    idnum: "1",
    id: "Z",
    src: "",
  },
  {
    idnum: "1",
    id: "X",
    src: "",
  },
  {
    idnum: "1",
    id: "C",
    src: "",
  },
];

class Button extends React.Component {
  constructor(props) {
    super(props);
  }

  render() {
    const buttonData = sounds.map((info, i) => (
      <button>
        {info["id"]}+{info["idnum"]}
      </button>
    ));
    return (<>{buttonData}</>)
  }
}
ReactDOM.render(
  <Button />,
  document.getElementById('root')
);