私はホームルート '/'を持っています。ユーザがそのルートに行くたびに、彼が認証されているか、/ 'login'ルート彼が認証されていない場合。彼のページにユーザーを送るために、私はサーバーにリクエストを行い、自分のIDを取得し、サーバーから取得したIDに基づいてルートにリダイレクトします。しかし、私は、ホームコンポーネントでそのロジックを正しく実装する方法についてちょっと混乱しています。 ajaxリクエストの結果に基づいてリダイレクトコンポーネントをレンダリングする最善の方法は何でしょうか?ajaxリクエストに基づいてリダイレクトコンポーネントをレンダリングする
あなたがこれを行うことができますclass Home extends React.Component {
async componentDidMount() {
const response = await Api.getUserId();
const id = response.data._id;
}
render() {
if(this.props.userStatus.authenticated) {
return <Redirect to={{
pathname: `/${id}`,
state: { from: this.props.location }
}}/>
}
return <Redirect to={{
pathname: '/login',
state: { from: this.props.location }
}}/>
}
}
export default connectComponent(['userStatus'], Home);
ありがとうございますが、それは私が問題があるわけではありません。ホームコンポーネントのアイデアは、認証されたユーザーを、サーバーから取得するIDによってそれぞれのページにリダイレクトすることです。私は何が起こりたいのですか?ユーザーが '/' =>彼が認証されている場合、私は自分のIDをサーバーから(トークンを提供することによって)取り出し、個人ページにリダイレクトします。私が混乱しているのは、「取得したIDを基にしてリダイレクトしてから、非同期ロジックを取得する」という実装方法です。ユーザーをリダイレクトするルートは、サーバーから取得した結果に基づいています。 – Umbrella