在React-Admin中自定义每个页面的标题可以通过几种不同的方法来实现。以下是一些基础概念和相关步骤:
<title>
标签中定义。Admin
组件的title
属性可以在顶层Admin
组件中设置一个默认标题,并通过路由配置覆盖特定页面的标题。
import * as React from 'react';
import { Admin, Resource } from 'react-admin';
import { Route } from 'react-router-dom';
const App = () => (
<Admin title="My App">
<Resource name="posts" />
{/* 其他资源 */}
</Admin>
);
useTitle
自定义钩子React-Admin提供了一个useTitle
钩子,可以在组件内部动态设置标题。
import * as React from 'react';
import { useTitle } from 'react-admin';
const MyPage = () => {
useTitle('My Custom Page Title');
return (
<div>
{/* 页面内容 */}
</div>
);
};
withTitle
高阶组件对于类组件或者需要更复杂逻辑的情况,可以使用withTitle
高阶组件。
import * as React from 'react';
import { withTitle } from 'react-admin';
class MyPage extends React.Component {
render() {
return (
<div>
{/* 页面内容 */}
</div>
);
}
}
export default withTitle('My Custom Page Title')(MyPage);
useTitle
或者withTitle
,或者是在组件生命周期之外调用了设置标题的方法。useTitle
,或者确保withTitle
包裹了正确的组件。以下是一个完整的示例,展示了如何在React-Admin中使用useTitle
钩子来自定义页面标题:
import * as React from 'react';
import { Admin, Resource } from 'react-admin';
import { PostList, PostEdit, PostCreate } from './posts';
const App = () => (
<Admin title="My App">
<Resource name="posts" list={PostList} edit={PostEdit} create={PostCreate} />
{/* 其他资源 */}
</Admin>
);
const PostList = (props) => {
useTitle('Posts List');
return (
<div>
{/* 列表内容 */}
</div>
);
};
const PostEdit = (props) => {
useTitle(`Edit Post ${props.id}`);
return (
<div>
{/* 编辑内容 */}
</div>
);
};
const PostCreate = (props) => {
useTitle('Create Post');
return (
<div>
{/* 创建内容 */}
</div>
);
};
export default App;
通过上述方法,你可以灵活地在React-Admin中为每个页面设置合适的标题。
领取专属 10元无门槛券
手把手带您无忧上云