javascript - 从项目数组动态创建链接

标签 javascript reactjs ecmascript-6

我需要根据数组中的值创建一个链接 ul。链接已创建,但 href 属性是随机分配的,与我传递给 getUrl 函数的实际值不对应。

这是迄今为止我的代码:

  getURL (type) {
    let url
    switch (type) {  
      case 'Yahoo':
        url = 'https://www.yahoo.com/'

      case 'Bing':
        url = 'https://www.bing.com/'

      default:
        url = 'https://www.google.com'
    }
    return url
  }

和渲染:

  render () {
    let { expandList } = this.state

    let listItems = [
      'Google',
      'Bing',
      'Yahoo'
    ]

    let list = expandList
      ? listItems.map((item, index) => {
          return (
            <li key={index}>
              <a href={this.getURL(item)} target='_blank'>
                {item}
              </a>
            </li>
          )
        })
      : ''

    return (
      <div>
        <ul>{list}</ul>
      </div>
    )
  }

最佳答案

您需要在每个案例之后中断或从中返回。如果您不这样做,它将始终继续默认,并返回 google 网址。

function getURL(type) {
  switch (type) {
    case 'Yahoo':
      return 'https://www.yahoo.com/'

    case 'Bing':
      return 'https://www.bing.com/'

    default:
      return 'https://www.google.com'
  }
}

console.log(getURL('Yahoo'));

console.log(getURL('Bing'));

关于javascript - 从项目数组动态创建链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49459692/

相关文章:

javascript - RequireJS - 加载模块的多个实例

javascript - 用阴影隐藏内容

node.js - 尝试创建 React App 时出现 web pack 问题

不同类型循环上的 Javascript

reactjs - 在 react redux 中的全局状态更改后调度新 Action

javascript - CanJS 模型的动态属性?

javascript - 通过隐藏和显示动画子类别

javascript - 如何修复 'warning Expected ' this' to be use by class method ' eslint 错误?

javascript - 如何创建动态变量并通过 useState() 使用它们

javascript - 如何在全局范围内使用 ES6 模块而不是命名空间?