Switch语句中的意外令牌`switch'

发布于 2025-01-23 17:03:05 字数 958 浏览 0 评论 0原文

我从以下代码中获得了意外的令牌switch错误:

const bodyelements = () => (
    body.map(item => (
      switch (item?.typename) {
        case 'ArticleBodyText':
          return <TextBlock dangerouslySetInnerHTML={{ __html: item?.primary?.[0].text }} />
        case 'ArticleBodyImage':
          return <ArticleBodyImage item={item} />
        default:
          break;
      )}
  )

我已经尝试在Stackoverflow上查看错误,但是我看到的修复程序并不适用于我的代码。有人知道怎么了吗?

编辑:

我将其更改为此

const bodyelements = () => {
    body.map(item => (
      switch (item?.__typename) {
        case 'ArticleBodyText':
          return <TextBlock dangerouslySetInnerHTML={{ __html: item?.primary?.[0].text }} />
          break;
        case 'ArticleBodyImage':
          return <ArticleBodyImage item={item} />
          break;
        default:
          break;
      )}
      }

,但我仍然遇到相同的错误

I am getting the Unexpected token switch error from the following code:

const bodyelements = () => (
    body.map(item => (
      switch (item?.typename) {
        case 'ArticleBodyText':
          return <TextBlock dangerouslySetInnerHTML={{ __html: item?.primary?.[0].text }} />
        case 'ArticleBodyImage':
          return <ArticleBodyImage item={item} />
        default:
          break;
      )}
  )

I already tried to look the error up on stackoverflow, but the fixes I saw didn't apply to my code. Does somebody know what's wrong?

EDIT:

I changed it to this

const bodyelements = () => {
    body.map(item => (
      switch (item?.__typename) {
        case 'ArticleBodyText':
          return <TextBlock dangerouslySetInnerHTML={{ __html: item?.primary?.[0].text }} />
          break;
        case 'ArticleBodyImage':
          return <ArticleBodyImage item={item} />
          break;
        default:
          break;
      )}
      }

But I am still getting the same error

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

愛放△進行李 2025-01-30 17:03:05

短函数语法有两个替代方法:

  1. 使用表达式并返回其结果:

     ()=&gt; (some_expression_with_a_result)
     
  2. 使用一个或多个语句的块:

     ()=&gt; {statement1;语句2}
     

switch是一个语句,因此您需要使用块变体。

The short function syntax have two alternatives:

  1. One that uses an expression and returns its result:

    () => ( some_expression_with_a_result )
    
  2. One that uses a block for one or more statements:

    () => { statement1; statement2 }
    

switch is a statement, so you need to use the block variant.

只想待在家 2025-01-30 17:03:05

您在代码中遇到了这些问题,

  • 如果您要渲染,则必须返回一些内容。
  • 您的开关语句应包含在块引号中。
  • 您应该添加地图中项目的返回语句。

尝试一下

const bodyelements = () => {
    return ['ArticleBodyText', 'ArticleBodyImage'].map(item => {
        switch (item) {
            case 'ArticleBodyText':
                return <div>1</div>;
            case 'ArticleBodyImage':
                return <div>2</div>;
            default:
                return null;
        }
    })
}

You have these issues in your code

  • Each switch case must return something if you are rendering.
  • Your switch statement should be enclosed in block quotes.
  • You should add return statement for items in map.

Try this

const bodyelements = () => {
    return ['ArticleBodyText', 'ArticleBodyImage'].map(item => {
        switch (item) {
            case 'ArticleBodyText':
                return <div>1</div>;
            case 'ArticleBodyImage':
                return <div>2</div>;
            default:
                return null;
        }
    })
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文