私は、ユーザーを管理者と通常のユーザーに分類するWebサイトを作っています。表示するルーティングコンポーネントを無効にするにはどうすればよいですか?
一部のルーティングコンポーネントは、認証されたユーザーでない限り、他のユーザーの詳細のように表示しないでください。
また、通常のユーザーに表示するだけでなく、通常のユーザーがアクセスできないようにする必要があります。コードを変更する場所ReactDOM.render(.....)またはコンポーネントの内部?
私は、ユーザーを管理者と通常のユーザーに分類するWebサイトを作っています。表示するルーティングコンポーネントを無効にするにはどうすればよいですか?
一部のルーティングコンポーネントは、認証されたユーザーでない限り、他のユーザーの詳細のように表示しないでください。
また、通常のユーザーに表示するだけでなく、通常のユーザーがアクセスできないようにする必要があります。コードを変更する場所ReactDOM.render(.....)またはコンポーネントの内部?
コンポーネント内で実行する必要があります。 ReactDOM.render
はReactコンポーネントとDOM要素を取ります。これは、Reactにその要素をレンダリングすることによって、そのDOM要素の内容をコントロールさせるために使用されます。通常、ほとんどのWebアプリケーションはReactDOM.render
の1つしか持たず、HTML <body>
のルートで使用されます。
達成したいことを条件付きレンダリングといいます。下の例では、this.state.profileBelongsToUser
がtrue
の場合、「プロファイルの編集」ボタンがレンダリングされます。それ以外の場合はDOMにレンダリングされません。そのブール値フラグの値を決定するためにデータを取得する必要があります。
class Profile extends React.Component {
constructor(props) {
super(props);
// Initialize/set state probably by fetching some data.
this.state = {
profileBelongsToUser: false
};
}
render() {
return (
<div>
<div>
<h1>Profile page</h1>
<p>Name: John Doe</p>
{this.state.profileBelongsToUser ? <button>Edit profile</button> : null}
</div>
</div>
)
}
}