为什么我的键给出了一个未定义的值,即使我以字符串的形式将键传递给对象给我正确的值

Why does my key give an undefined value even if me passing the key to the object in the form of a string gives me the correct value

为什么当 categoryDictonary["Marvel"] 给出 ["WandaVision", "Loki", "Moon Knight"] 时 categoryDictonary[item] 的值未定义,即使 item 的值为“Marvel”[=11] =]

这是我的代码

export default function App() {
var categoryDictonary = {
Marvel: ["WandaVision", "Loki", "Moon Knight"],
SitComs: ["Brooklyn 99", "Big Bang Theory"]};

var categories = Object.keys(categoryDictonary);

function ClickHandler(item) {
console.log(item);
console.log(categoryDictonary["Marvel"]);
console.log(categoryDictonary[item]);
}

return (
<div className="App">
  <h2>TV Show Ratings</h2>
  <h3>Check out my ratings on some of the most popular TV Shows</h3>
  <ul>
    {categories.map((item) => {
      return (
        <li key={item} onClick={() => ClickHandler({ item })}>
          {item}
        </li>
      );
    })}
  </ul>
</div>
);
}

你的 ClickHandler(item)item prop 不是可以从 categoryDictionary 获取值的 string,它是一个具有值 {item: "Marvel"} 的对象所以你必须做 categoryDictionary[item.item] 才能得到正确的输出。

编辑:因为现在你发布了完整的代码,你已经将道具项目作为对象传递给 ClickHandler({ item }) onClick() 你可以在 ClickHandler 函数中捕获相同的内容通过将其参数更改为析构对象 function ClickHandler({ item }) 然后您可以直接执行 categoryDictionary[item].