我是React.js的新手,从数据库中拾取对象时我需要一些帮助。
我有一个API可以从我的mysql数据库中获取数据,当我在数据库中有sportid='26'
的2个以上的对象时,我得到了这个。
“未处理的拒绝(SyntaxError):JSON输入意外结束”。
如果它是一个或两个对象,那就完美了。
有人可以告诉我为什么?
import React, { Component } from 'react';
import Popup from './Popup';
class Riding extends Component {
constructor(props) {
super(props);
this.state = {
data: null,
clicked: false,
open: false,
};
this.togglePopup = this.togglePopup.bind(this);
}
togglePopup() {
this.setState(state => ({
clicked: true
}));
}
componentDidMount() {
let data = fetch('http://localhost/reusesport/src/api/riding.php')
.then((res) => {
res.json().then((res) => {
console.log(res);
this.setState({data:res})
})
})
}
render() {
return (
<div>
<h1 className="Advertisment_title">Ridsport</h1>
<div className="Advertisment">
{
this.state.data ?
this.state.data.map((item) =>
<div className="AdvertismentBox" onClick={this.togglePopup}>
{this.state.clicked ? <Popup id={item.id} title={item.title} text={item.text} date={item.date} price={item.price} municipality={item.municipality} county={item.county}/> : null}
<h3 className="AdvertismentBox_title">{item.title}</h3>
<img src={item.picture} alt={item.title}/>
<h3 className="AdvertismentBox_price">{item.price}</h3>
<h3 className="AdvertismentBox_date">{item.date}</h3>
<h3 className="AdvertismentBox_county">{item.county}</h3>
</div>
)
:
<h3>Vänta - datat hämtas</h3>
}
</div>
</div>
);
}
}
export default Riding;
我的API:
<?php
header('Access-Control-Allow-Origin: *');
header("Content-Type:application/json");
include("connect.php");
$sql = "SELECT * FROM `advertisment` WHERE sportid='26'";
$result = $connect ->query($sql);
$return_arr = array();
if($result = mysqli_query($connect, $sql)) {
while($row = mysqli_fetch_assoc($result)) {
$row_array['id'] = $row['id'];
$row_array['title'] = $row['title'];
$row_array['picture'] = $row['picture'];
$row_array['price'] = $row['price'];
$row_array['date'] = $row['date'];
$row_array['county'] = $row['county'];
array_push($return_arr, $row_array);
}
}
mysqli_close($connect);
echo json_encode($return_arr);
?>