特定の役割と権限を持つユーザーと作業しています。この役割のうちの2つは独自のダッシュボードですが、それ以外の役割はありません。だから、基本的に私は私のApp.js
にこのような何かをやっている:休憩中の管理者:正しいログインが発生したときに管理コンポーネントを再レンダリングする必要があります。
const AdminProps = {
title: <Header />,
theme: getMuiTheme(SnapbackTheme),
locale: 'en',
restClient,
authClient: AuthClient,
loginPage: LoginPage
}
let AppLayout = <Admin {...AdminProps } />
if (userRoleIs(USER_ROLE_1)) {
AppLayout = (
<Admin {...AdminProps } dashboard={CustomDashboardForThisRole}>
<Resource name="resource1" list={resource1List} />
</Admin>
)
}
if (userRoleIs(USER_ROLE_2)) {
AppLayout = (
<Admin {...AdminProps }>
<Resource name="resource1" list={resource1List} />
</Admin>
)
}
return AppLayout
私はAdmin
が持つべき小道具を選択できますログインしているユーザーに依存し、見ることができるように。これはうまく機能していますが、これは、ユーザーとログインしてどのロールがあるかを調べると、Admin
小道具を更新して再レンダリングする適切な方法がないことがわかります。
カスタムダッシュボードを持つユーザーでログインすると、ページを更新して管理者が正しいダッシュボードで正しくレンダリングするまで空のコンテンツ画面が表示されます。
現時点では私の醜い回避策:window.location.reload()
ログインに成功しましたが、空のコンテンツ画面が1秒間表示され、ひどいです。
私の質問は:Admin
コンポーネントをauthClientから再レンダリングする適切な方法はありますか?
ありがとうございます!
ありがとうございました。しかし、admin-on-restフレームワークがすべきことです。私はフレームワークのもう1人のユーザーです。[彼らは問題ではなく、ここに投稿してください](https:// github.com/marmelab/admin-on-rest/issues/790#event-1136592651)、wtf then:/ –
私は、休息経験の管理者と誰かがあなたを助けることができるように願っています。 –
私たちはそれが私たちのprbではないと言っていませんでした。ちょうどgithubでバグを処理しているだけです。投稿したコードを含むコンポーネントのコードを表示できますか?私はそれが何かのレンダリングメソッドの一部だと思いますか? – Gildas