【问题标题】:How to check for object properties in a conditional statement in JavaScript?如何在 JavaScript 的条件语句中检查对象属性?
【发布时间】:2020-12-16 02:24:15
【问题描述】:

我有一个本地 json 数据库,我正在尝试为我在前端 react Web 应用程序中保存的不同类型的链接加载不同的图标。

当我检查对象属性的条件时,我从 ESLint 收到错误消息 Parsing error: Unexpected token。我既不能使用 switch-case 也不能使用 if-else 语句。

这是我的代码:

        <ul className="work-links">
          {work.links.map(link => (
            <li>
              <a
                href={link.url}
                target="_blank"
                rel="noopener noreferrer"
              >
                {
                  switch (link.type) {
                    case 'website':
                      return <Globe />;
                    case 'github':
                      return <GitHub />;
                    case 'gitlab':
                      return <GitLab />;
                    case 'apk':
                      return <Android />;
                    case 'youtube':
                      return <YouTube />;
                    default:
                      break;
                  }
                }
              </a>
            </li>
          ))}
        </ul>

附言

这里是完整代码的链接:https://github.com/sepsol/sepsol.github.io/blob/react-code/src/components/Works.js

这是 VS Code 中的问题:

您可以克隆 repo 并自己查看问题。

【问题讨论】:

  • " 既不能使用 switch-case 也不能使用 if-else 语句。" - 为什么?那你为什么要使用int他的代码呢?请显示有问题的代码..
  • 我添加了有关问题的更多描述,当我尝试对对象属性设置条件时出现语法错误。

标签: javascript reactjs object switch-statement conditional-statements


【解决方案1】:
const maps = {
 'website': <Globe />
 'github': <GitHub />,
 'gitlab': <GitLab />,
 'apk': <Android />,
 'website': <YouTube />,
}

<ul className="work-links">
  {work.links.map(link => (
    <li>
      <a 
         href={link.url}
         target="_blank"
         rel="noopener noreferrer"
      >
       {maps[link.type]}
      </a>
    </li>
   ))}
</ul>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2023-01-11
    • 2017-02-19
    • 2016-08-29
    • 1970-01-01
    • 2016-01-17
    相关资源
    最近更新 更多