这是我的代码,它产生了一个“期望的赋值或函数调用,却看到了一个表达式”的错误。我个人没有看到任何错误,我的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的情况下编写此代码?
发布于 2019-03-05 08:33:09
您需要添加return
或删除{}
(或将其替换为()
)。当您在lambda周围使用{}
时,它期望返回一个完整的函数体,而不仅仅是一个表达式。
发布于 2019-03-05 08:45:57
以下是采用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>
);
}
否则,我们可以选择添加return:
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>
);
}
https://stackoverflow.com/questions/54993680
复制相似问题