1

我有这个代码,请看title道具:

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...

这会尝试title在登录成功时更改渲染,因此我们accommodation.name从那里得到不同的值。

我期待组件可能会使用此事件重新呈现,因为登录会影响 REDUX 状态,因此window变量(登录后更改)应该呈现不同的标题。

那没起效。

我们如何以正确的方式(react-redux 方式)做到这一点?

4

2 回答 2

3

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

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

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

于 2018-04-16T07:41:49.010 回答
1

您应该将当前拥有的 accountData 保存在 Redux 存储中的 window 对象上,并保存在它自己的 Reducer 中。当您的 LOGIN Action 被触发时,我将使用新数据更新该 accountData。

于 2018-03-28T15:49:11.550 回答