当ajax响应到达时,Onclick准备HTML并在react中呈现
onclick prepare html when ajax response arrivers and render in react?
嘿,我是新的反应,我的要求是,当用户点击一个按钮ajax get请求被触发到服务器和基于收到的响应,我必须准备的html和显示它。下面是我的代码,它不工作…它可以通过使用async: false
在jquery中解决,但我不必使用它知道如何使用axios
import React from "react";
import axios from "axios"
class UserItems extends React.Component {
constructor(props) {
super(props);
this.state = {
useritem: ''
}
}
prepareHtmlOnAjaxResponse(){
var user_item = this.state.useritem
// html prepation done here
return preparedHtml;
}
getDatFromServeronclick() {
// getting user data from server is done in this function
// when data is receieved it is stored in a state
var self = this;
var promise = axios.get("http://localhost:4000/user/1/items.json")
promise.then(function (response) {
self.setState({ useritem: response.data.items })
self.prepareHtmlOnAjaxResponse() // prepare html
})
console.log("executing first and returning null")
}
render() {
var result = this.getDatFromServeronclick() // getting undefined value this has to be called onclick
return (
<div>
{result} / result is undefined
</div>
);
}
}
export default UserItems;
你必须使用self.setState function
而不是self.state assignment
,否则React不会触发组件的渲染。
var promise = axios.get("http://localhost:4000/user/1/items.json")
promise.then(function (response) {
self.setState({ useritems: response.data.items })
})
来自React的文档:
永远不要改变这个。state直接,因为之后调用setState()可能会替换您所做的更改。对待这个问题。状态,就好像它是不可变的。
然后在render
函数
<button onClick={() => this.getDatFromServeronclick() }> {this.state.useritems.map(user => user.title)} </button>
您可以将user.title
替换为object useritems
的keys
。
相关文章:
- 如何获取javascript输入并在html中调用它
- 使用javascript读取本地XML文件并在html页面中显示
- 在Javascript中解析json并在html上创建表
- 如何使用 JQuQuery 解析 JSON 对象并在 HTML 页面中以表格格式打印输出
- 在不使用jQuery的情况下解析json,并在HTML代码中添加值
- 使用PHP和JavaScript动态搜索SQL表并在HTML上显示
- 在javascript中分配变量值,并在html中使用
- 将更新后的值保存到数据库中,并在html表中显示
- 无法从承诺中填充列表并在 html - aurelia.
- var.push 并在 HTML 页面中显示我的新临时信息
- javascript的新手,我将如何嵌入我的javascript文件并在HTML字段中运行它
- 如何在 jQuery 中读取 xml 文件内容并在 html 元素中显示
- 如何将项目添加到 javascript 数组并在 html
- 中显示该数组
- 将街道地址转换为坐标并在 html 中放置
- 使用 Java 脚本打开图像并在 html 中调用该函数
- 用颜色填充t恤,并在HTML画布上相应地更改文本颜色
- 如何从.txt文件中提取内容并在HTML中随机显示一行
- mozilla firefox扩展:创建一个javascript库并在HTML页面中使用它
- 如何将行值移动到另一个表,并在html中重做到上一个表
- 如何在AngularJS中查找值并在HTML表中显示数据