我在打开reactjs文件之一时遇到VSCode错误“预期表达。ts(1009)”。 do
和if
用红色突出显示。
但是我可以在本地开发环境中运行代码,并且编译时也没有问题。我猜这是由于VSCode编辑器错误引起的。
其他编辑器(例如Atom或Sublime Text)也可以。我在React中使用三元运算来解决它,但是如果else if
太多,事情就会变得非常复杂。
<div className='form'>
// Form stuffs
</div>
{
do{
if (hasBreakfast) {
<span>Breakfast Included</span>
} else if {
<span>Breakfast Not Included</span>
}
}
}
有什么方法可以解决VSCode中的警告?
答案 0 :(得分:0)
return (
<Fragment>
// JSX to render goes here...
</Fragment>
);
我在最后一行收到了相同的错误。 我添加了fragment元素,以强制return()接收一个父元素。您还可以通过将返回代码包装为'div'元素来实现此目的。但是,这里的问题是您将有随机的空'div'。
文档比我能更好地解释它。 https://reactjs.org/docs/fragments.html
答案 1 :(得分:0)
do
表达式,如在原始问题中使用的,实际上是“有效”的 JSX/JS 语法 if you're using the babel syntax/plugin that supports the do
expression proposal。 VS Code 不高兴的原因是因为 TypeScript itself does not support the syntax。如果它无论如何都可以在您的开发环境中运行,请again that's probably Babel。
答案 2 :(得分:0)
Import Cost VSCode Extension 我遇到了这个错误,刚刚卸载修复了我的问题。
答案 3 :(得分:-1)
if
语句需要一个表达式来断言是否应使用该代码块。
例如:
if (a = true) {
// do something
} else if (b = true) {
// do something else
}
如果您只想渲染Breakfast Not Included
,则可以只使用else
,而不使用if
。或者简化一下,可以制作ternary:
{
hasBreakfast ? <span>Breakfast Included</span> : <span>Breakfast Not Included</span>;
}
答案 4 :(得分:-1)
就我而言,我使用三元条件遇到此Expression expected.ts(1109)
错误。