预期 ReactJS 中的赋值或函数调用错误 [重复]

Posted

技术标签:

【中文标题】预期 ReactJS 中的赋值或函数调用错误 [重复]【英文标题】:Expected an assignment or function call error in ReactJS [duplicate] 【发布时间】:2020-12-16 10:47:06 【问题描述】:

这实际上是我试图在 ReactJS 中实现的一个组件

这里是sn-p的代码:

const Leaders=(leaders, isLoading, errMess)=>
    if (isLoading) 
        return (
            <Loading />
        )
    
    else if (errMess) 
        return (
            <h4>errMess</h4>
        )
    
    else 
        return (
            leaders.map((leader) => 
                <Stagger in>
                    <Fade in>
                        <Media>
                            <Media object left src=baseUrl + leader.image alt=leader.name className='my-image mt-5'></Media>
                            <Media body className="ml-5 mt-0">
                                <Media heading>
                                    leader.name
                                </Media>
                                <p className='font-card'>leader.designation</p>
                                <p>leader.description</p>
                                <hr></hr>
                            </Media>
                        </Media>
                    </Fade>
                </Stagger>)
        )
    

但我收到一个错误:Expected an assignment or function call and instead saw an expression 在 else 条件的返回部分。

非常感谢解决此问题的解决方案

【问题讨论】:

代码看起来不错,但是这个 className='my-image mt-5' 在这里,你应该使用双引号 (") 【参考方案1】:

看起来你的 map 函数最后没有返回任何东西,所以你必须在你的 jsx 中添加 return:

leaders.map((leader) =>  return <Stagger in> ... // should add return

【讨论】:

这样就解决了问题,但是else条件不是作为一个整体返回的吗?为什么我需要在 map 函数中再次返回? 由于Array.prototye.map 是通过循环每个项目创建一个新数组并返回新数组,因此您的目的是为每个项目创建 JSX。如果您不返回任何内容,它将创建列表,其中每个项目都是 void 0 :)【参考方案2】:

当你有一个箭头函数的花括号时:

(leader) => 
  // ...

...那么大括号之间的每一项都是一个语句。你有一个不做任何事情的表达式语句

<Stagger in>...</Stagger>

你想要的是一个 return 语句,它将成为函数的结果。否则,该函数会隐式返回 undefined,如果您尝试渲染 undefined 值,React 会吐出错误:

return <Stagger in>...<Stagger>

...或将箭头函数更改为不使用花括号,这样您就可以将 表达式 作为主体,创建隐式返回语句:

(leader) => (
  <Stagger in>
    ...
  </Stagger>
)

【讨论】:

以上是关于预期 ReactJS 中的赋值或函数调用错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

期望一个赋值或函数调用,而是看到一个表达式 no-unused-expressions-ReactJs

ReactJs Newbie 期望一个赋值或函数调用,而是看到一个表达式 no-unused-expressions

得到一个预期的赋值或函数调用的错误,而是在反应中看到一个表达式 no-unused-expressions

ReactJs - 期望一个赋值或函数调用,而是看到一个表达式

声纳给出“预期分配或函数调用”消息

期望一个赋值或函数调用,而是看到一个表达式 React JS