PRU*_*NGH 1 javascript web reactjs
我正在使用 ReactJS 构建一个网站,该网站使用我计算机本地存在的 JSON 来获取要填写的信息。这是index.js 文件:-
import React from 'react';
import data from 'notes.json';
class BlogList extends React.Component {
constructor(props){
super(props);
this.state={
items:[],
loaded: false
};
}
/* useEffect()=>{
return function(){
}
},[deep])
*/ //Similar to ComponentDidUnMount();
componentDidMount(){
fetch(data)
.then(response => response.json())
.then(json => {
this.setState({
items: json,
loaded: true,
})
})
}
render() {
const {items, loaded} = this.state;
if(!loaded){
return <h3>Loading........</h3>
}
return (
<div className="content-container" >
{
items.map((item)=>(
<div key={item.id}>
<p>
{item.postId}
</p>
<p>
{item.id}
</p>
<p>
{item.name}
</p>
<p>
{item.email}
</p>
<p>
{item.body}
</p>
<hr/>
</div>
))
}
</div>
);
}
}
export default BlogList;
Run Code Online (Sandbox Code Playgroud)
JSON 文件在这里:-
[
{
"postId": 1,
"id": 1,
"name": "id labore ex et quam laborum",
"email": "Eliseo@gardner.biz",
"body": "laudantium enim quasi est quidem magnam voluptate ipsam eos\ntempora quo necessitatibus\ndolor quam autem quasi\nreiciendis et nam sapiente accusantium"
},
{
"postId": 1,
"id": 2,
"name": "quo vero reiciendis velit similique earum",
"email": "Jayne_Kuhic@sydney.com",
"body": "est natus enim nihil est dolore omnis voluptatem numquam\net omnis occaecati quod ullam at\nvoluptatem error expedita pariatur\nnihil sint nostrum voluptatem reiciendis et"
},
{
"postId": 1,
"id": 3,
"name": "odio adipisci rerum aut animi",
"email": "Nikita@garfield.biz",
"body": "quia molestiae reprehenderit quasi aspernatur\naut expedita occaecati aliquam eveniet laudantium\nomnis quibusdam delectus saepe quia accusamus maiores nam est\ncum et ducimus et vero voluptates excepturi deleniti ratione"
},
{
"postId": 1,
"id": 4,
"name": "alias odio sit",
"email": "Lew@alysha.tv",
"body": "non et atque\noccaecati deserunt quas accusantium unde odit nobis qui voluptatem\nquia voluptas consequuntur itaque dolor\net qui rerum deleniti ut occaecati"
}
]
Run Code Online (Sandbox Code Playgroud)
它不断地在控制台中给我这个错误: - 未处理的承诺拒绝:语法错误:字符串与预期模式不匹配。
小智 5
如果服务器的响应是文本,但您尝试使用 res.json() 将其解析为 JSON,则可能会收到此错误。
fetch(serverUrl, {method: 'GET'})
.then((res) => res.json())
res.text()
Run Code Online (Sandbox Code Playgroud)
如果服务器返回文本,则适用。
在这种情况下,Safari 曾经给我OP的错误,但 Chrome 更具体:“json 中位置 0 处出现意外的标记 W”—— res.json() 期望字符串的第一个字符为 { 或 [ 因为这就是方式JSON 开始。
或者,正如 Safari 所说,“字符串与预期模式不匹配。”
| 归档时间: |
|
| 查看次数: |
6025 次 |
| 最近记录: |