reactjs 如何修复VSCode中的“预期表达式. ts(1109)”?

yrdbyhpb  于 2023-03-01  发布在  React
关注(0)|答案(5)|浏览(368)

我在打开reactjs文件时遇到了VSCode错误“Expressionexpected.ts(1009)”。doif以红色突出显示。但是我可以在本地开发环境中运行代码,并且编译时也没有问题。我猜这是由于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中的警告有什么解决方法吗?

jdgnovmf

jdgnovmf1#

return (
  <Fragment>
  // JSX to render goes here...
  </Fragment>
);

我在最后一行收到了同样的错误。我添加了fragment元素来强制return()接收一个父元素。你也可以通过将你的返回代码 Package 成一个'div'元素来实现这一点。然而,这里的问题是你会有随机的空'div'。
医生解释得比我好https://reactjs.org/docs/fragments.html

mu0hgdu0

mu0hgdu02#

do表达式,正如在最初的问题中使用的,实际上是“有效的”JSX/JS语法if you're using the babel syntax/plugin that supports the do expression proposal。VS代码不满意的原因是因为TypeScript本身不支持该语法。如果它在您的开发环境中工作,那么again that's probably Babel

wgxvkvu9

wgxvkvu93#

导入成本VSCode扩展我遇到了这个错误,刚刚卸载修复了我的问题。

hjqgdpho

hjqgdpho4#

if语句需要一个表达式来Assert是否应该使用该代码块。
例如:

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>;
}
xxb16uws

xxb16uws5#

在我的情况下,我得到这个Expression expected.ts(1109)错误使用三元条件。

相关问题