class Game extends Component
{
constructor()
{
super()
this.state = {
speed: 0
}
//firebaseInit()
}
render()
{
return
(
<div>
<h1>The Score is {this.state.speed};</h1>
</div>
)
}
}
export default Game;
我是React的新手,对于此代码,它给出了此错误
Expected an assignment or function call and instead saw an expression no-unused-expressions
不明白哪里出了问题,请帮忙
答案 0 :(得分:29)
对我来说,使用地图时发生了错误。而且我没有在地图内使用return语句。
{cart.map((cart_products,index) => {
<span>{cart_products.id}</span>;
})};
以上代码产生错误。
{cart.map((cart_products,index) => {
return (<span>{cart_products.id}</span>);
})};
只需添加return即可解决。
答案 1 :(得分:23)
发生这种情况是因为您将return
的括号放在了下一行。如果您在编写不带分号的js并使用在下一行放置大括号的样式,这可能是一个常见错误。
解释器认为您返回undefined,因此不检查您的下一行。这就是return
运算符。
将打开的括号与return
放在同一行。
答案 2 :(得分:11)
如果您在带有花括号的函数中使用JSX,则需要将其修改为括号。
代码错误
return this.props.todos.map((todo) => {
<h3> {todo.author} </h3>;
});
正确的代码
//Change Curly Brace To Paranthesis change {} to => ()
return this.props.todos.map((todo) => (
<h3> {todo.author} </h3>;
));
答案 3 :(得分:2)
在我的情况下,我在括号内加了花括号。
const Button = () => {
<button>Hello world</button>
}
应该在的位置:
const Button = () => (
<button>Hello world</button>
)
这样做的原因,如in the MDN Docs所述,是由()
包装的箭头函数将返回它包装的值,因此,如果我想使用花括号,则必须添加{{1 }}关键字,如下所示:
return
答案 4 :(得分:2)
对于我来说,发生错误是因为return
语句之后的新行。
错误:预期分配或函数调用,而是看到一个表达式
return
(
<ul>
{
props.numbers.map(number => <li key={number.toString()}>number</li>)
}
</ul>
);
工作正常。没有错误
return (
<ul>
{
props.numbers.map(number => <li key={number.toString()}>number</li>)
}
</ul>
);
答案 5 :(得分:1)
使用以下代码遇到相同的错误。
return this.state.employees.map((employee) => {
<option value={employee.id}>
{employee.name}
</option>
});
当我将花括号更改为括号时,上述问题已解决,如下面的修改后的代码片段所示。
return this.state.employees.map((employee) => (
<option value={employee.id}>
{employee.name}
</option>
));
答案 6 :(得分:1)
在我的情况下,如果使用jsx,则由于函数花括号而发生,那么您需要将花括号更改为括号,请参见下面的代码
const [国家/地区] = useState([“ USA”,“ UK”,“ BD”])
我尝试了这个但没有用,不知道为什么
{countries.map((country) => {
<MenuItem value={country}>{country}</MenuItem>
})}
但是当我将花括号更改为括号时,它对我来说很好用
{countries.map((country) => ( //Changes is here instead of {
<MenuItem value={country}>{country}</MenuItem>
))} //and here instead of }
希望它也会对您有帮助...
答案 7 :(得分:0)
就我而言,我从未将返回放在箭头功能内 所以我的代码是
`<ProductConsumer>
{(myvariable)=>{
return <h1>{myvariable}</h1>
}}
</ProductConsumer> `
答案 8 :(得分:0)
import React from 'react';
class Counter extends React.Component{
state = {
count: 0,
};
formatCount() {
const {count} = this.state;
// use a return statement here, it is a importent,
return count === 0 ? 'Zero' : count;
}
render() {
return(
<React.Fragment>
<span>{this.formatCount()}</span>
<button type="button" className="btn btn-primary">Increment</button>
</React.Fragment>
);
}
}
export default Counter;
答案 9 :(得分:0)
代替
return
(
<div>
<h1>The Score is {this.state.speed};</h1>
</div>
)
使用以下代码
return(
<div>
<h1>The Score is {this.state.speed};</h1>
</div>
)
基本上在与“ return(” 相同的返回行中使用大括号“(” 。它将解决此问题。谢谢。
答案 10 :(得分:0)
在我的情况下,我遇到了此错误,因为在条件内使用了没有分号的调用:
private async _setActive(active: boolean) {
if (this.isActive === active) {
return;
}
this.isActive = active;
this.isActive ? this._start() : this._stop();
}
我更改了它,错误消失了:
private async _setActive(active: boolean) {
if (this.isActive === active) {
return;
}
this.isActive = active;
if (this.isActive) {
await this._start();
} else {
this._stop();
}
}
答案 11 :(得分:0)
在我的情况下,我在setState行上得到了错误:
increment(){
this.setState(state => {
count: state.count + 1
});
}
我将其更改为此,现在可以使用
increment(){
this.setState(state => {
const count = state.count + 1
return {
count
};
});
}
答案 12 :(得分:0)
当我们使用花括号(即{})返回一个错误时,会出现错误-“ 期望分配或函数调用,而看到一个表达式no-unused-expressions ”。对象文字表达式。在这种情况下,我们可以通过2个选项对其进行修复
示例:
...
[server]
SSH_DOMAIN = domain.local
DOMAIN = domain.local
HTTP_PORT = 8080
ROOT_URL = https://domain.local/
DISABLE_SSH = false
SSH_PORT = 7999
LFS_START_SERVER = true
LFS_CONTENT_PATH = /usr/local/gitea/gitea/data/lfs
LFS_JWT_SECRET = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
OFFLINE_MODE = false
START_SSH_SRVER = true
BUILTIN_SSH_SERVER_USER =
SSH_LISTEN_PORT = %(SSH_PORT)s
SSH_CREATE_AUTHORIZED_KEYS_FILE = true
...
答案 13 :(得分:0)
万一有人遇到像我一样的问题。我在编写其余代码的同一行上使用了带有return语句的括号。另外,我使用了地图功能和道具,所以我得到了很多括号。在这种情况下,如果您不熟悉React,则可以避免在道具周围放括号,因为现在每个人都喜欢使用箭头功能。并且在map函数中,您还可以避免在函数回调周围加上括号。
props.sample.map(function callback => (
));
像这样。在上面的代码示例中,您可以看到函数回调的左侧只有左括号。
答案 14 :(得分:0)
就我而言,我在构造函数中使用逗号而不是分号。
错误示例:
class foo(bar1, bar2, bar3){
this.bar1=bar1,
this.bar2=bar2,
this.bar3=bar3,
}
相反,我应该使用像下面这样的分号:
class foo(bar1, bar2, bar3){
this.bar1=bar1;
this.bar2=bar2;
this.bar3=bar3;
}
答案 15 :(得分:0)