在一个post请求之后,数据进入数据库,但是它没有重新呈现组件。我需要手动按F5按钮,新的数据就会显示出来。看起来then
没有执行。
class AddForm extends Component {
constructor(props) {
super(props)
this.state = {
id: null,
title: "",
price: 0,
pages: 0,
};
}
postData() {
const { title, price, pages } = this.state
const curTitle = title
const curPrice = price
const curPages = pages
fetch("api/books", {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
Title: title,
Price: price,
NumberOfPages: pages
})
}).then(res => res.json()).then(() => this.setState({ title: curTitle, price: curPrice, pages: curPages }))
}
}
编辑:执行以下操作时:
.then(response => response.json()).then(res => console.log(res))
我得到Uncaught (in promise) SyntaxError: Unexpected end of JSON input
3条答案
按热度按时间mccptt671#
那么从你的问题来看,你可以在提交的时候进行状态更新,唯一的问题是关于显示数据,所以我建议你另外放一个显示数据的组件,以前我是这样做的,你能不能这样做告诉我。
mrwjdhj32#
资源=〉资源json():这将给出一个JSON响应,将此JSON响应值绑定到setState中的状态。
希望您的回复如下,
改变你的fetch调用然后函数如下,
ilmyapht3#
你应该创建一个从后端获取的新函数,然后在响应后调用这个函数