Javascript 语法错误/jshint与in-line&;ReactJS中的映射

Javascript 语法错误/jshint与in-line&;ReactJS中的映射,javascript,reactjs,syntax,jshint,Javascript,Reactjs,Syntax,Jshint,这是我的代码,它产生了一个“预期的赋值或函数调用,而不是看到一个表达式”错误。我个人没有看到任何错误,我的修饰工作照常进行。我相信是JSHINT在这里召唤我: render() { return ( <div id="animalGallery"> {this.props.displayData.map(eachProfilePic => { this.state.selected === eachProfilePic.iconID ? (

这是我的代码,它产生了一个“预期的赋值或函数调用,而不是看到一个表达式”错误。我个人没有看到任何错误,我的修饰工作照常进行。我相信是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>
);}
render(){
返回(
{this.props.displayData.map(eachProfilePic=>{
this.state.selected==eachProfilePic.iconID(
this.profilePicClick(eachProfilePic.iconID)}
>
) : (
this.profilePicClick(eachProfilePic.iconID)}
>
);
})}
);}

它在我的代码的第四行调用该错误,它似乎有任何错误吗?如果没有,是否有其他方法可以编写此代码而不触发JSHINT?

您需要添加
返回
或删除
{}
(或将其替换为
()
)。当您在lambda周围使用
{}
时,它需要返回完整的函数体,而不仅仅是表达式。

以下是采用Joseph的答案后的正确代码: 拆下支架后:

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(){
返回(
{this.props.displayData.map(eachProfilePic=>
this.state.selected==eachProfilePic.iconID(
this.profilePicClick(eachProfilePic.iconID)}
>
) : (
this.profilePicClick(eachProfilePic.iconID)}
>
)
)}
);
}
否则,我们可以选择添加退货:

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>
);
}
render(){
返回(
{this.props.displayData.map(eachProfilePic=>{
返回this.state.selected==eachProfilePic.iconID(
this.profilePicClick(eachProfilePic.iconID)}
>
) : (
this.profilePicClick(eachProfilePic.iconID)}
>
);
})}
);
}