こんにちは私は新しくなりました。ユーザーがボタンをクリックすると、ajaxのリクエストが サーバーに送信され、受信したレスポンスに基づいて、htmlを準備して表示する必要があります。以下 は、それがasync: false
を使用してjqueryの中で解決することができますが、私はあなたが代わりにself.setState function
を使用する必要がonclick ajaxレスポンスが到着して反応するときにhtmlを準備しますか?
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;
私はコードを更新しましたが、 'prepareHtmlOnAjaxResponse'関数からhtmlを表示する方法 – ashwintastic
私の更新された答えを見たり、jsfiddleを作成して修正することができます。 useritemの名前をuseritemsに変更してください – lustoykov