在map函数JS中切换语句/条件

1 javascript ecmascript-6 reactjs

我正在使用react,我正在尝试映射数组并创建对象:

var levels = this.props.levels.map((level, i) =>
  <img key={i} src={levelImg} className={styles.level} />
);
Run Code Online (Sandbox Code Playgroud)

有可能做这样的事情:

var levels = this.props.levels.map((level, i) =>
  switch (i) {
    case 1:
      // do something
      break;
    case 2:
      // do something
      break;
    case 3:
      // do something
      break;
  }
  // ...
  <img key={i} src={levelImg} className={styles.level} />
);
Run Code Online (Sandbox Code Playgroud)

当我尝试这样的东西时,我遇到语法错误.

Fel*_*ing 7

为了在箭头函数中使用语句,你必须用braces({})和return一个值来分隔函数体,就像你对"普通"函数定义一样:

var levels = this.props.levels.map((level, i) => {
  switch (i) {
    case 1:
      // do something
      break;
    case 2:
      // do something
      break;
    case 3:
      // do something
      break;
  }
  // ...
  return <img key={i} src={levelImg} className={styles.level} />;
});
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅MDN文档.