0
私はAPIエンドポイントをヒットするためにajax呼び出しを使用して現在のユーザーを取得する関数を作成しています。これは匿名ユーザーまたは実際のユーザーかもしれません。 initial
変数はコンストラクタで使用されている場合はtrueに設定され、他の場所で使用される場合はfalseに設定されます。これが適切なやり方であるのか、コードがクリーンなのか分かりません。例:setStateとit.stateを切り替えるためにイニシャルを使用して、反応で正しい方法を指定していますか?現在のユーザーを取得する反応関数を簡素化
loadCurrentUser(initial = false) {
$.ajax({
type: 'GET',
url: 'accounts/api/users/current',
}).done((responseData) => {
const data = responseData.data;
const isAuthenticated = data.is_authenticated;
let stateData;
if (isAuthenticated) {
stateData = {
displayName: data.display_name,
reputationPoint: data.reputation_point,
};
} else {
stateData = {
displayName: null,
reputationPoint: null,
};
}
if (initial) {
this.state = stateData;
} else {
this.setState(stateData);
}
});
}
私の質問にお答えいただきありがとうございます! componentWillMountのloadCurrentUserとコンストラクタのloadCurrentUserを呼び出す方法の違いは何ですか? –
コールを延期するだけです。 'componentWillMount'で呼び出されるまでに、すべての小道具と初期状態が設定されていました。そうでなければ私はほとんど同じです。 – Babar