我有这段代码,请参阅{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方式)?
答案 0 :(得分:3)
您可以制作自定义且已连接的Title
组件,并将其作为title
道具传递。
https://codesandbox.io/s/1072ry6rl7
请注意,我的自定义Title
组件必须支持className
道具。这是material-ui
要求。
答案 1 :(得分:1)
您应该将当前拥有的accountData保存在Redux存储区中的窗口对象中,并保存在自己的Reducer中。当您的LOGIN操作被触发时,我会使用新数据更新该accountData。