articles.js 中有错误
文章.js:
import React, {Component} from 'react';
import './index.css';
export default class Class extends Component {
constructor(props) {
super(props);
this.state = {
asd: "asd"
}
}
componentDidMount(){
this.df();
}
async df(){
let a = await fetch("http://localhost:8080/articles")
let content = await a.json();
alert(content)
this.setState(state=>{
asd:content.core
}
)
}
render() {
return (
<div>
<div id={"mainArticle"} dangerouslySetInnerHTML={{__html:this.state.asd}}>
</div>
<div>
</div>
<p></p>
</div>
);
}
}
我在 df 函数中获取一个包含 html fork 的字符串并将其传递给 setState asd
之后,该函数被传递给 componentDidMount,它将启动该函数并更改 asd 的值
接下来,asd的值被传递给
dangerouslySetInnerHTML 属性,其中 div 应该已经在其内部输出 html 标记
终端给我错误:
预期是一个赋值或函数调用,但看到的是一个表达式
怎么了?
我不知道该怎么办...
问题出在
df
函数的 setState
箭头函数中。
this.setState(state=>{
asd:content.core
}
)
应该是
this.setState(state=> ({
asd:content.core
})
)
或
this.setState(state=> {
return { asd:content.core }
}
)
这是因为如果函数体在箭头 (
{
) 之后以 =>
开头,它会被解析为块体,而不是表达式。因此,这就像做
this.setState(function (state) {
asd:content.core
})
其中
asd:
被解释为 label,content.core
被解释为表达式。