reactjs - 反应在提交页面上打印 axios POST 响应
问题描述
我对我的烧瓶服务器有一个有效的 axios 发布请求,该请求在其响应中返回 json,如下所示。
{contract: 135.35699844360352}
我可以在我记录它的控制台中看到这个响应,但我无法理解如何将它呈现到我的页面上。
我的主要目标是获取工作响应数据并通过 render() html 显示在页面上。
这是来自 React 的 Form.js 文件:
import React, { Component } from "react";
import axios from "axios";
class Form extends Component {
constructor(props) {
super(props);
this.state = {
ticker: "",
};
}
handleTickerChange = (event) => {
this.setState({
ticker: event.target.value,
});
};
handleSubmit = (event) => {
event.preventDefault();
console.log(this.state);
axios
.post("http://127.0.0.1:5000", this.state)
.then((response) => {
console.log(response.data);
this.setState({ contract: response.data });
})
.catch((error) => {
console.log(error);
});
};
render() {
return (
<form onSubmit={this.handleSubmit}>
<div>
<label>Ticker </label>
<input
type="text"
name="ticker"
value={this.state.ticker}
onChange={this.handleTickerChange}
/>
<button type="submit">Submit</button>
</div>
{this.state.contract}
</form>
);
}
}
export default Form;[![enter image description here][1]][1]
解决方案
在您的 handleSubmit 函数中检查 response.data 是否为 {contract: 135.35699844360352} 您需要将 setState 函数更改为
this.setState({ contract: response.data.contract });
或者
const {contract} = response.data
this.setState({ contract: contract });
推荐阅读
- java - 古巴平台自定义控制器未在 Swagger 中显示
- css - 如何修复此页面上的 z-index?
- python - 熊猫:.apply 与多索引
- python - quandl 数据框如何选择 loc
- javascript - Javascript 显示我使用 css 设置样式的文档对象的空样式属性
- angular - HTTP拦截器不发送firebase身份验证令牌
- deep-learning - 使用暗网 yolov4 训练数据集时,平均损失为 0
- sql - 如何使用变量值编写内联运算符
- javascript - axios获取/发布请求时加载栏
- javascript - 如何在 vuex 状态上设置间隔并从模板中清除它?