如何动态更改"标题" of" app",基于登录信息(即登录成功或注销后)?

时间:2018-03-28 15:00:25

标签: admin-on-rest react-admin

我有这段代码,请参阅{a: string}道具:

Callback

这会尝试在登录成功时更改呈现的function cOverload(error: undefined, value: string): void; // signature1 function cOverload(error: Error): void; // signature2 function cOverload(error: undefined | Error, value?: string) { //impl if (typeof value !== 'undefined') { c1(undefined, value); } else { c2(error!); } } doThings(cOverload); // works ,因此我们从那里获得不同的title值。

我原本期望该组件可以使用此事件重新呈现,因为登录会影响REDUX状态,因此const App = () => ( <Admin theme={theme} customRoutes={customRoutes} menu={Menu} dataProvider={loopbackRestClient(window.apiUrl)} authProvider={authClient()} dashboard={Dashboard} locale="en" i18nProvider={i18nProvider} title={`Dashboard - ${window.accountData ? window.accountData.accommodation.name : ''}`} > // more code here... 变量(登录后更改)应呈现不同的标题。

它不起作用。

我们怎样才能以正确的方式(react-redux方式)?

2 个答案:

答案 0 :(得分:3)

您可以制作自定义且已连接的Title组件,并将其作为title道具传递。

https://codesandbox.io/s/1072ry6rl7

请注意,我的自定义Title组件必须支持className道具。这是material-ui要求。

答案 1 :(得分:1)

您应该将当前拥有的accountData保存在Redux存储区中的窗口对象中,并保存在自己的Reducer中。当您的LOGIN操作被触发时,我会使用新数据更新该accountData。