Синтаксическая ошибка / jshint со встроенной картой в ReactJS - PullRequest
0 голосов
/ 05 марта 2019

вот мой код, он выдает ошибку «Ожидается присваивание или вызов функции, и вместо этого он видит выражение».Я лично не вижу никаких ошибок, и мой prettify работает как обычно.Я полагаю, что это JSHINT вызывает меня здесь:

render() {
return (
  <div id="animalGallery">
    {this.props.displayData.map(eachProfilePic => {
      this.state.selected === eachProfilePic.iconID ? (
        <a
          class="animal selected"
          onClick={() => this.profilePicClick(eachProfilePic.iconID)}
        >
          <img src={eachProfilePic.iconID} />
        </a>
      ) : (
        <a
          class="animal"
          onClick={() => this.profilePicClick(eachProfilePic.iconID)}
        >
          <img src={eachProfilePic.iconID} />
        </a>
      );
    })}
  </div>
);}

Это вызывает эту ошибку в четвертой строке в моем коде, есть ли ошибки?Если нет, есть ли другой способ, которым я могу написать этот код без запуска JSHINT?

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Вот правильный код после принятия ответа Джозефа: сняв скобки:

render() {
return (
  <div id="animalGallery">
    {this.props.displayData.map(eachProfilePic =>
      this.state.selected === eachProfilePic.iconID ? (
        <a
          class="animal selected"
          onClick={() => this.profilePicClick(eachProfilePic.iconID)}
        >
          <img src={eachProfilePic.iconID} />
        </a>
      ) : (
        <a
          class="animal"
          onClick={() => this.profilePicClick(eachProfilePic.iconID)}
        >
          <img src={eachProfilePic.iconID} />
        </a>
      )
    )}
  </div>
);
}

Иначе, мы можем вместо этого добавить возврат:

render() {
return (
  <div id="animalGallery">
    {this.props.displayData.map(eachProfilePic => {
      return this.state.selected === eachProfilePic.iconID ? (
        <a
          class="animal selected"
          onClick={() => this.profilePicClick(eachProfilePic.iconID)}
        >
          <img src={eachProfilePic.iconID} />
        </a>
      ) : (
        <a
          class="animal"
          onClick={() => this.profilePicClick(eachProfilePic.iconID)}
        >
          <img src={eachProfilePic.iconID} />
        </a>
      );
    })}
  </div>
);
}
0 голосов
/ 05 марта 2019

Вам нужно либо добавить return, либо удалить {} (или заменить их на ()).Когда вы используете {} вокруг лямбды, она ожидает полного тела функции, а не просто выражения, которое будет возвращено.

...