helper-plugin
迁移参考
¥helper-plugin
migration reference
本文档旨在帮助开发者迁移他们的 Strapi 插件和应用以不使用 helper-plugin
包。它按字母顺序列出了 helper-plugin
包中存在的每个导出,并按域分组。
¥This document has been written to help developers migrate their Strapi plugins and applications to not use the helper-plugin
package.
It lists every export that existed in the helper-plugin
package, in alphabetical order and grouped by domain.
组件
¥Components
AnErrorOccurred
此组件已被移除并重构为从 @strapi/strapi/admin
导出的 Page
组件的一部分。你应该从那里使用 Page
组件:
¥This component has been removed and refactored to be part of the Page
component exported from @strapi/strapi/admin
. You should use the Page
component from there:
// Before
import { AnErrorOccurred } from '@strapi/helper-plugin';
const MyPage = () => {
// ...
if (error) {
return <AnErrorOccurred />;
}
// ...
};
// After
import { Page } from '@strapi/strapi/admin';
const MyPage = () => {
// ...
if (error) {
return <Page.Error />;
}
// ...
};
CheckPermissions
此组件已被移除且未被替换。如果你觉得需要这个组件,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This component has been removed and not replaced. If you feel like you need this component, please open an issue on the Strapi repository to discuss your usecase.
我们建议改用 @strapi/strapi/admin
中的 Page.Protect
组件(请参阅 CheckPagePermissions
了解示例)。如果你需要检查更底层组件的权限,则可以使用 useRBAC
钩子。
¥We recommend using the Page.Protect
component from @strapi/strapi/admin
instead (see CheckPagePermissions
for an example). If you need to check permissions for a lower level component you can use the useRBAC
hook.
CheckPagePermissions
此组件已被移除并重构为从 @strapi/strapi/admin
导出的 Page
组件的一部分。你应该从那里使用 Page
组件:
¥This component has been removed and refactored to be part of the Page
component exported from @strapi/strapi/admin
. You should use the Page
component from there:
// Before
import { CheckPagePermissions } from '@strapi/helper-plugin';
const MyProtectedPage = () => {
return (
<CheckPagePermissions
permissions={[action: 'plugin::my-plugin.read']}
>
<MyPag />
</CheckPagePermissions>
);
};
// After
import { Page } from '@strapi/strapi/admin';
const MyProtectedPage = () => {
return (
<Page.Protect permissions={[action: 'plugin::my-plugin.read']}>
<MyPage />
</Page.Protect>
);
};
行为略有变化,以前没有权限会将你重定向到页面的根目录,现在它将渲染 NoPermissions
组件。
¥The behaviour has slightly changed, where previously no permissions would redirect you to the root of the page, now it will render the NoPermissions
component.
ConfirmDialog
此组件已被移动并重构。它可以从 @strapi/strapi/admin
包导入:
¥This component has been moved and refactored. It can be imported from the @strapi/strapi/admin
package:
// Before
import { ConfirmDialog } from '@strapi/helper-plugin';
// After
import { ConfirmDialog } from '@strapi/strapi/admin';
详情请参阅 文档对于 ConfirmDialog
组件 上托管的每个自定义字段的专用文档。
¥Please see the contributors documentation for the ConfirmDialog
component for more information.
ContentBox
此组件已被移除且未被替换。如果你觉得需要这个组件,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This component has been removed and not replaced. If you feel like you need this component, please open an issue on the Strapi repository to discuss your usecase.
DateTimePicker
这是对设计系统的别名。你应该从那里导入组件:
¥This was aliasing the design-system. You should import the component from there:
// Before
import { DateTimePicker } from '@strapi/helper-plugin';
// After
import { DateTimePicker } from '@strapi/design-system';
DynamicTable
此组件之前已弃用,现已移除。与弃用通知类似,我们建议使用 @strapi/strapi/admin
中的 Table
组件。
¥This component was previously deprecated and has now been removed. Similar to the deprecation notice, we recommend using the Table
component from @strapi/strapi/admin
.
详情请参阅 文档对于 Table
组件 上托管的每个自定义字段的专用文档。
¥Please see the contributors documentation for the Table
component for more information.
EmptyBodyTable
此组件已被删除,是 Table
组件的一部分。
¥This component has been removed and is part of the Table
component.
详情请参阅 文档对于 Table
组件 上托管的每个自定义字段的专用文档。
¥Please see the contributors documentation for the Table
component for more information.
EmptyStateLayout
此组件已被移除且未被替换。你应该使用 @strapi/design-system
中的 EmptyStateLayout
:
¥This component has been removed and not replaced. You should use EmptyStateLayout
from @strapi/design-system
:
// Before
import { EmptyStateLayout } from '@strapi/helper-plugin';
// After
import { EmptyStateLayout } from '@strapi/design-system';
属性会有所不同。请参阅 Strapi 设计系统 文档对于 EmptyStateLayout
组件。
¥The props will be different. Please refer to the Strapi Design System documentation for the EmptyStateLayout
component.
FilterListURLQuery
此组件已移至 admin
包,现在可以通过 @strapi/strapi
包作为复合组件 Filters
的一部分导入:
¥This component was moved to the admin
package and can now be imported via the @strapi/strapi
package as part of the composite component Filters
:
// Before
import { FilterListURLQuery } from '@strapi/helper-plugin';
const MyComponent = () => {
return (
<FilterListURLQuery
filtersSchema={[
{
name: 'name',
metadatas: { label: 'Name' },
fieldSchema: { type: 'string' },
},
]}
/>
);
};
// After
import { Filters } from '@strapi/strapi/admin';
const MyComponent = () => {
return (
<Filters.Root>
<Filters.List />
</Filters.Root>
);
};
FilterPopoverURLQueryProps
此组件已移至 admin
包,现在可以通过 @strapi/strapi
包作为复合组件 Filters
的一部分导入:
¥This component was moved to the admin
package and can now be imported via the @strapi/strapi
package as part of the composite component Filters
:
// Before
import { FilterPopoverURLQueryProps } from '@strapi/helper-plugin';
// After
import { Filters } from '@strapi/strapi/admin';
const MyComponent = () => {
return (
<Filters.Root>
<Filters.Trigger />
<Filters.Popover />
</Filters.Root>
);
};
表格
¥Form
此组件别名为 Formik
,我们正在努力将其删除。应改用 Form
组件及其从 @strapi/strapi/admin
导出的同级组件:
¥This component aliased Formik
, something we're working towards removing. The Form
component and its sibling exports from @strapi/strapi/admin
should be used instead:
// Before
import { Form } from '@strapi/helper-plugin';
// After
import { Form } from '@strapi/strapi/admin';
用户应注意,Formik 库的任何使用都将不再有效,而应查看贡献者 文档对于 Form
组件。
¥Users should note that any use of the Formik library will no longer work and instead should look at the contributors documentation for the Form
component.
GenericInput
此组件已被移除并重构为从 @strapi/strapi/admin
导出的 InputRenderer
组件。你应该从那里使用 InputRenderer
组件:
¥This component has been removed and refactored to become the InputRenderer
component exported from @strapi/strapi/admin
. You should use the InputRenderer
component from there:
// Before
import { GenericInput } from '@strapi/helper-plugin';
const MyComponent = () => {
return (
<GenericInput
type={'type'}
hint={'hint'}
label={'label'}
name={'name'}
onChange={onMetaChange}
value={'value'}
/>
);
};
// After
import { InputRenderer } from '@strapi/strapi/admin';
请注意,InputRenderer
组件具有不同的 API,你应该参考 文档对于 InputRenderer
组件。
¥Note, that the InputRenderer
component has a different API, and you should refer to the documentation for the InputRenderer
component.
InjectionZone
此组件已被移除且未被替换。但是,你可以使用 useStrapiApp
钩子轻松地在自己的项目中复制此操作:
¥This component has been removed and not replaced. However, you can easily replicate this in your own project by using the useStrapiApp
hook:
// Before
import { InjectionZone } from '@strapi/helper-plugin';
<InjectionZone area={`injection.zone.area`} />;
// After
const MyComponent = ({ area, ...compProps }) => {
const getPlugin = useStrapiApp('MyComponent', (state) => state.getPlugin);
const [pluginName, page, position] = area.split('.');
const plugin = getPlugin(pluginName);
const components = plugin?.getInjectedComponents(page, position);
if (!plugin || !components) {
return null;
}
return components.map(({ name, Component }) => (
<Component key={name} {...props} />
));
};
链接
¥Link
这是对设计系统的别名,并将 as
属性与 react-router-dom
一起使用。你应该从那里导入组件:
¥This was aliasing the design-system and using the as
prop with react-router-dom
. You should import the component from there:
// Before
import { Link } from '@strapi/helper-plugin';
// After
import { Link } from '@strapi/design-system/v2';
import { NavLink } from 'react-router-dom';
const MyLink = () => {
return (
<Link as={NavLink} to="/my-link">
My Link
</Link>
);
};
LinkButton
这是对设计系统的别名,并将 as
属性与 react-router-dom
一起使用。你应该从那里导入组件:
¥This was aliasing the design-system and using the as
prop with react-router-dom
. You should import the component from there:
// Before
import { LinkButton } from '@strapi/helper-plugin';
// After
import { LinkButton } from '@strapi/design-system/v2';
import { NavLink } from 'react-router-dom';
const MyLink = () => {
return (
<LinkButton as={NavLink} to="/my-link">
My Link
</LinkButton>
);
};
LoadingIndicatorPage
此组件已被移除并重构为从 @strapi/strapi/admin
导出的 Page
组件的一部分。你应该从那里使用 Page
组件:
¥This component has been removed and refactored to be part of the Page
component exported from @strapi/strapi/admin
. You should use the Page
component from there:
// Before
import { LoadingIndicatorPage } from '@strapi/helper-plugin';
const MyPage = () => {
// ...
if (isLoading) {
return <LoadingIndicatorPage />;
}
// ...
};
// After
import { Page } from '@strapi/strapi/admin';
const MyPage = () => {
// ...
if (isLoading) {
return <Page.Loading />;
}
// ...
};
NoContent
此组件已被移除且未被替换,你应该使用来自 @strapi/design-system
的 EmptyStateLayout
组件。
¥This component has been removed and not replaced, you should use the EmptyStateLayout
component from @strapi/design-system
.
// Before
import { NoContent } from '@strapi/helper-plugin';
<NoContent
content={{
id: 'translation_id',
defaultMessage: 'Message',
}}
/>;
// After
import { EmptyStateLayout } from '@strapi/design-system';
<EmptyStateLayout
content={{
id: 'translation_id',
defaultMessage: 'Message',
}}
/>;
NoMedia
此组件已被移除且未被替换。如果你觉得需要这个组件,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This component has been removed and not replaced. If you feel like you need this component, please open an issue on the Strapi repository to discuss your usecase.
NoPermissions
此组件已被移除并重构为从 @strapi/strapi/admin
导出的 Page
组件的一部分。你应该从那里使用 Page
组件:
¥This component has been removed and refactored to be part of the Page
component exported from @strapi/strapi/admin
. You should use the Page
component from there:
// Before
import { NoPermissions } from '@strapi/helper-plugin';
const MyPage = () => {
// ...
if (!canRead) {
return <NoPermissions />;
}
// ...
};
// After
import { Page } from '@strapi/strapi/admin';
const MyPage = () => {
// ...
if (!canRead) {
return <Page.NoPermissions />;
}
// ...
};
NotAllowedInput
此组件已被移除且未被替换。如果你觉得需要这个组件,请在 Strapi 存储库上打开一个问题来讨论你的用例。你可以使用 @strapi/design-system
中的 TextInput
轻松地在自己的项目中复制此操作:
¥This component has been removed and not replaced. If you feel like you need this component, please open an issue on the Strapi repository to discuss your usecase. You can easily replicate this in your own project by using the TextInput
from @strapi/design-system
:
import { TextInput } from '@strapi/design-system';
const MyComponent = (props) => {
return (
<TextInput
disabled
placeholder="No permissions to see this field"
type="text"
{...props}
/>
);
};
PageSizeURLQuery
此组件已移至 admin
包,现在可以通过 @strapi/strapi
包作为复合组件 Pagination
的一部分导入:
¥This component was moved to the admin
package and can now be imported via the @strapi/strapi
package as part of the composite component Pagination
:
// Before
import { PageSizeURLQuery } from '@strapi/helper-plugin';
const MyComponent = () => {
return (
<PageSizeURLQuery options={['12', '24', '50', '100']} defaultValue="24" />
);
};
// After
import { Pagination } from '@strapi/strapi/admin';
const MyComponent = () => {
return (
<Pagination.Root>
<Pagination.PageSize />
</Pagination.Root>
);
};
请注意,有一些轻微的行为变化,即如果最低 pageSize 为 10 但你只有 9 个条目,则 PageSize 不会渲染。由于重构,一些 props 将会移动和更改,请查看贡献者 分页组件的文档 了解更多信息。
¥Note, there were some slightly behavioural changes i.e. the PageSize won't render if the lowest pageSize is 10 but you only have 9 entries. Due to the refactor some props will have moved and changed, please look at the contributors documentation for the Pagination component for more information.
PaginationURLQueryProps
此组件已移至 admin
包,现在可以通过 @strapi/strapi
包作为复合组件 Pagination
的一部分导入:
¥This component was moved to the admin
package and can now be imported via the @strapi/strapi
package as part of the composite component Pagination
:
// Before
import { PaginationURLQueryProps } from '@strapi/helper-plugin';
// After
import { Pagination } from '@strapi/strapi/admin';
const MyComponent = () => {
return (
<Pagination.Root pageCount={2}>
<Pagination.Links />
</Pagination.Root>
);
};
请注意,有一些轻微的行为变化,即如果页面少于 2 个,则链接不会渲染。由于重构,一些属性将会移动和更改,请查看 分页组件的文档 了解更多信息。
¥Note, there were some slightly behavioural changes i.e. the Links won't render if there are less than 2 pages. Due to the refactor some props will have moved and changed, please look at the documentation for the Pagination component for more information.
ReactSelect
此组件已被移除且未被替换。如果你觉得需要这个组件,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This component has been removed and not replaced. If you feel like you need this component, please open an issue on the Strapi repository to discuss your usecase.
RelativeTime
此组件已被移除且未被替换。如果你觉得需要这个组件,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This component has been removed and not replaced. If you feel like you need this component, please open an issue on the Strapi repository to discuss your usecase.
SearchURLQuery
此组件已被删除并重命名为 SearchInput
,现在可以由 @strapi/strapi
包导入:
¥This component was removed and renamed to SearchInput
and can now be imported by the @strapi/strapi
package:
// Before
import { SearchURLQuery } from '@strapi/helper-plugin';
// After
import { SearchInput } from '@strapi/strapi/admin';
SettingsPageTitle
此组件已被移除且未被替换。如果你觉得需要这个组件,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This component has been removed and not replaced. If you feel like you need this component, please open an issue on the Strapi repository to discuss your usecase.
状态
¥Status
此组件应从 @strapi/design-system
包导入:
¥This component should be imported from the @strapi/design-system
package:
// Before
import { Status } from '@strapi/helper-plugin';
const MyComponent = () => {
return (
<Status variant={statusColor} showBullet={false} size="S">
<Typography fontWeight="bold" textColor={`${statusColor}700`}>
{stateMessage[status]}
</Typography>
</Status>
);
};
// After
import { Status } from '@strapi/design-system';
表格
¥Table
此组件应从 @strapi/strapi/admin
包导入:
¥This component should be imported from the @strapi/strapi/admin
package:
// Before
import { Table } from '@strapi/helper-plugin';
const MyComponent = () => {
return (
<Table colCount={2} rowCount={2}>
<Thead>
<Tr>
<Th>
<Typography variant="sigma" textColor="neutral600">
{`Name`}
</Typography>
</Th>
<Th>
<Typography variant="sigma" textColor="neutral600">
{`Description`}
</Typography>
</Th>
</Tr>
</Thead>
<Tbody>
{data?.map(({ name, description }) => {
return (
<Tr key={name}>
<Td>
<Typography
textColor="neutral800"
variant="omega"
fontWeight="bold"
>
{name}
</Typography>
</Td>
<Td>
<Typography textColor="neutral800">{description}</Typography>
</Td>
</Tr>
);
})}
</Tbody>
</Table>
);
};
// After
import { Table } from '@strapi/strapi/admin';
部分属性已更改,请参考贡献者 文档对于 Table
组件。
¥Some of the props have changed, please refer to the contributors documentation for the Table
component.
内容管理者
¥Content Manager
contentManagementUtilRemoveFieldsFromData
此功能已被删除,但未被替换。如果你觉得需要此功能,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This function has been removed and not replaced. If you feel like you need this function, please open an issue on the Strapi repository to discuss your usecase.
formatContentTypeData
此功能已被删除,但未被替换。如果你觉得需要此功能,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This function has been removed and not replaced. If you feel like you need this function, please open an issue on the Strapi repository to discuss your usecase.
使用 CMEditViewDataManager
¥useCMEditViewDataManager
许多内部组件已被重新设计和拆分。我们正在公开一个主要的实验钩子来替换这个名为 useContentManagerContext
的钩子,而其余逻辑则在几个钩子中。
¥A lot of the internals have been reworked and split. We are exposing a main experimental hook to replace this one named useContentManagerContext
while the rest of the logic is in several hooks.
// Before
import { useCMEditViewDataManager } from '@strapi/helper-plugin';
// After
import { unstable_useContentManagerContext as useContentManagerContext } from '@strapi/strapi/admin/hooks';
下面列出了一些常见的用例:
¥Some common use cases are listed below:
// Before
const { slug, isSingleType, isCreatingEntry, hasDraftAndPublished } =
useCMEditViewDataManager();
// After
const {
model,
collectionType,
id,
slug,
isCreatingEntry,
isSingleType,
hasDraftAndPublish,
} = useContentManagerContext();
// Before
// 'allLayoutData' has been removed. It contained 'components' and 'contentType' which can be extracted from the 'useContentManagerContext' hook as seen below.
const { allLayoutData } = useCMEditViewDataManager();
// After
const { components, contentType } = useContentManagerContext();
// Before
const { layout } = useCMEditViewDataManager();
// After
const { layout } = useContentManagerContext();
const {
edit: { layout, components },
list: { layout },
} = layout;
// Before
const { initialData, modifiedData, onChange } = useCMEditViewDataManager();
// After
const { form } = useContentManagerContext();
// Here 'initialData' and 'modifiedData' correspond to 'initialValues' and 'values'.
const { initialValues, values, onChange } = form;
// Before
const { onPublish, onUnpublish } = useCMEditViewDataManager();
// After
const { publish, unpublish } = useDocumentActions();
特性
¥Features
AppInfo
此功能已移至 @strapi/admin
,现在仅导出钩子 useStrapiApp
。
¥This feature has been moved to @strapi/admin
and only the hook useStrapiApp
is now exported.
AutoReloadOverlayBlocker
此功能已被删除,但未被替换。如果你觉得需要此功能,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This feature has been removed and not replaced. If you feel like you need this feature, please open an issue on the Strapi repository to discuss your usecase.
CustomFields
此功能已被删除,是 useStrapiApp
钩子的一部分。
¥This feature has been removed and is part of the useStrapiApp
hook.
GuidedTour
此功能已移至 @strapi/admin
,现在仅导出钩子 useGuidedTour
。
¥This feature has been moved to @strapi/admin
and only the hook useGuidedTour
is now exported.
库
¥Library
此功能已被删除,是 useStrapiApp
钩子的一部分。
¥This feature has been removed and is part of the useStrapiApp
hook.
通知
¥Notifications
此功能已移至 @strapi/admin
包,仅导出 useNotifications
钩子。message
属性不再是 TranslationMessage
,而只能是字符串。如果你以前使用的是 warning
类型,则应该改用 danger
类型,如果你使用的是 softWarning
类型,则应该使用 warning
。最后,返回类型现在是一个对象。
¥This feature has been moved to the @strapi/admin
package and only the useNotifications
hook is exported. The message
property
can no longer be a TranslationMessage
and instead, only a string. If you were previously using the warning
type you should instead
use the danger
type and if you were using the softWarning
type you should use warning
. Finally, the return type is now an object.
// Before
import { useNotification } from '@strapi/helper-plugin';
const toggleNotification = useNotification();
toggleNotification({
type: 'warning',
message: {
id: 'my.message.id',
defaultMessage: 'My message',
},
});
// After
import { useNotification } from '@strapi/strapi/admin';
const { toggleNotification } = useNotification();
toggleNotification({
type: 'danger',
message: formatMessage({
id: 'my.message.id',
defaultMessage: 'My message',
}),
});
RBAC
此功能已被删除,但未被替换。如果你需要访问用户的权限,则应使用 useAuth
钩子。
¥This feature has removed and not replaced. If you need to access the user's permissions you should use the useAuth
hook.
// Before
import { useRBACProvider } from '@strapi/helper-plugin';
const { allPermission, refetchPermissions } = useRBACProvider();
// After
import { useAuth } from '@strapi/strapi/admin';
const permissions = useAuth('COMPONENT_NAME', (state) => state.permissions);
const refetchPermission = useAuth(
'COMPONENT_NAME',
(state) => state.refetchPermission
);
OverlayBlocker
此功能已被删除,但未被替换。如果你觉得需要此功能,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This feature has been removed and not replaced. If you feel like you need this feature, please open an issue on the Strapi repository to discuss your usecase.
StrapiApp
此功能已移至 @strapi/admin
,现在仅导出钩子 useStrapiApp
。
¥This feature has been moved to @strapi/admin
and only the hook useStrapiApp
is now exported.
跟踪
¥Tracking
此功能已移至 @strapi/admin
包,仅导出 useTracking
钩子。
¥This feature has been moved to the @strapi/admin
package and only the useTracking
hook is exported.
钩子
¥Hooks
使用 APIErrorHandler
¥useAPIErrorHandler
此钩子已被删除。你应该从 @strapi/strapi/admin
包导入它:
¥This hook has been removed. You should import it from the @strapi/strapi/admin
package:
// Before
import { useAPIErrorHandler } from '@strapi/helper-plugin';
// After
import { useAPIErrorHandler } from '@strapi/strapi/admin';
useCallbackRef
此钩子已被删除。你应该从 @strapi/design-system
包导入它:
¥This hook has been removed. You should import it from the @strapi/design-system
package:
// Before
import { useCallbackRef } from '@strapi/helper-plugin';
// After
import { useCallbackRef } from '@strapi/design-system';
useClipboard
此钩子已被删除,但未被替换。如果你觉得需要这个钩子,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This hook has been removed and not replaced. If you feel like you need this hook, please open an issue on the Strapi repository to discuss your usecase.
useCollator
此钩子已被删除。你应该从 @strapi/design-system
包导入它:
¥This hook has been removed. You should import it from the @strapi/design-system
package:
// Before
import { useCollator } from '@strapi/helper-plugin';
// After
import { useCollator } from '@strapi/design-system';
useFetchClient
此钩子已被删除。你应该从 @strapi/strapi/admin
包导入它:
¥This hook has been removed. You should import it from the @strapi/strapi/admin
package:
// Before
import { useFetchClient } from '@strapi/helper-plugin';
// After
import { useFetchClient } from '@strapi/strapi/admin';
useFieldHint
此钩子已被删除,但未被替换。如果你觉得需要这个钩子,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This hook has been removed and not replaced. If you feel like you need this hook, please open an issue on the Strapi repository to discuss your usecase.
useFilter
此钩子已被删除。你应该从 @strapi/design-system
包导入它:
¥This hook has been removed. You should import it from the @strapi/design-system
package:
// Before
import { useFilter } from '@strapi/helper-plugin';
// After
import { useFilter } from '@strapi/design-system';
useFocusInputField
此钩子已被删除,但未被替换。如果你觉得需要这个钩子,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This hook has been removed and not replaced. If you feel like you need this hook, please open an issue on the Strapi repository to discuss your usecase.
useFocusWhenNavigate
此钩子已被删除,但未被替换。如果你觉得需要这个钩子,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This hook has been removed and not replaced. If you feel like you need this hook, please open an issue on the Strapi repository to discuss your usecase.
useFormattedMessage
此钩子已被删除,但未被替换。如果你觉得需要这个钩子,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This hook has been removed and not replaced. If you feel like you need this hook, please open an issue on the Strapi repository to discuss your usecase.
useLockScroll
此钩子已被删除,但未被替换。如果你觉得需要这个钩子,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This hook has been removed and not replaced. If you feel like you need this hook, please open an issue on the Strapi repository to discuss your usecase.
useQuery
此钩子已被删除,但未被替换。如果你觉得需要这个钩子,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This hook has been removed and not replaced. If you feel like you need this hook, please open an issue on the Strapi repository to discuss your usecase.
useQueryParams
此钩子已被移动。你应该从 @strapi/strapi/admin
包导入它:
¥This hook has been moved. You should import it from the @strapi/strapi/admin
package:
// Before
import { useQueryParams } from '@strapi/helper-plugin';
// After
import { useQueryParams } from '@strapi/strapi/admin';
使用 RBAC
¥useRBAC
此钩子已被移动。你应该从 @strapi/strapi/admin
包导入它:
¥This hook has been moved. You should import it from the @strapi/strapi/admin
package:
// Before
import { useRBAC } from '@strapi/helper-plugin';
// After
import { useRBAC } from '@strapi/strapi/admin';
useSelectionState
此钩子已被删除,但未被替换。如果你觉得需要这个钩子,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This hook has been removed and not replaced. If you feel like you need this hook, please open an issue on the Strapi repository to discuss your usecase.
图标
¥Icons
SortIcon
此组件已被移除且未被替换。如果你觉得需要此功能,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This component has been removed and not replaced. If you feel like you need this function, please open an issue on the Strapi repository to discuss your usecase.
RemoveRoundedButton
此组件已被移除且未被替换。如果你觉得需要此功能,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This component has been removed and not replaced. If you feel like you need this function, please open an issue on the Strapi repository to discuss your usecase.
实用程序
¥Utils
awaitToJs
此实用程序已被删除且未被替换,请改用 async / await 和 try / catch。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced, use async / await with try / catch instead. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
difference
此实用程序已被删除且未被替换。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
findMatchingPermissions
此实用程序已被删除且未被替换。你应该自己过滤权限。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced. You should filter the permissions yourself. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
formatPermissionsForRequest
此实用程序已被删除且未被替换。你应该自己格式化权限。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced. You should format the permissions yourself. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
getAPIInnerErrors
此实用程序已被删除且未被替换,请改用 async / await 和 try / catch。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced, use async / await with try / catch instead. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
getFetchClient
此实用程序已被删除。你应该从 @strapi/strapi/admin
包导入它:
¥This util has been removed. You should import it from the @strapi/strapi/admin
package:
// Before
import { getFetchClient } from '@strapi/helper-plugin';
// After
import { getFetchClient } from '@strapi/strapi/admin';
getFileExtension
此实用程序已被删除且未被替换。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
getYupInnerErrors
此实用程序已被删除且未被替换。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
auth
此实用程序已被删除且未被替换。如果你尝试与令牌或当前用户进行交互,则应改用 useAuth
钩子。如果你通常与 localStorage 交互,则直接访问它,例如 localStorage.getItem('myKey')
。
¥This util has been removed and not replaced. If you're trying to interact with the token or current user you use should use the useAuth
hook instead.
If you're generally interacting with localStorage, then access this directly e.g. localStorage.getItem('myKey')
.
hasPermissions
此实用程序已被删除。如果你需要使用它,则应使用 useAuth
钩子中的 checkUserHasPermissions
函数。
¥This util has been removed. If you need to use it, you should use the checkUserHasPermissions
function from the useAuth
hook.
// Before
import { hasPermissions } from '@strapi/helper-plugin';
const permissions = await Promise.all(
generalSectionRawLinks.map(({ permissions }) =>
hasPermissions(userPermissions, permissions)
)
);
// After
import { useAuth } from '@strapi/strapi/admin';
const { checkUserHasPermissions } = useAuth(
'COMPONENT_NAME',
(state) => state.checkUserHasPermissions
);
normalizeAPIError
此实用程序已被删除且未被替换。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
prefixFileUrlWithBackendUrl
此实用程序已被删除且未被替换。如果需要,使用 strapi backendUrl 作为相对 url 的前缀。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced. Use the strapi backendUrl to prefix the relative url if you need. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
prefixPluginTranslations
此实用程序已被删除且未被替换。如果需要,你的插件应该自己定义这个实用程序,实现如下:
¥This util has been removed and not replaced. Your plugin should define this util itself if needed, with an implementation like this:
type TradOptions = Record<string, string>;
const prefixPluginTranslations = (
trad: TradOptions,
pluginId: string
): TradOptions => {
if (!pluginId) {
throw new TypeError("pluginId can't be empty");
}
return Object.keys(trad).reduce((acc, current) => {
acc[`${pluginId}.${current}`] = trad[current];
return acc;
}, {} as TradOptions);
};
如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
pxToRem
此实用程序已被删除且未被替换。你应该直接使用此代码代替 pxToRem:
¥This util has been removed and not replaced. You should use directly this code in place of the pxToRem:
// Before
pxToRem(
32
) // After
`${32 / 16}rem`;
// or
('2rem');
如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
request
此实用程序已被删除且未被替换。你可以从 @strapi/admin/strapi-admin
中使用 useFetchClient
。
¥This util has been removed and not replaced.
You can use useFetchClient
from @strapi/admin/strapi-admin
.
// Before
import { request } from '@strapi/helper-plugin';
request(`/${pluginId}/settings/config`, { method: 'GET' });
// After
import { useFetchClient } from '@strapi/admin/strapi-admin';
const { get } = useFetchClient();
get(`/${pluginId}/settings/config`);
你可以这样使用它
¥And you can use it like this
const { get } = useFetchClient();
const { data } = await get(requestURL);
如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
setHexOpacity
此实用程序已被删除且未被替换,请改用原生 CSS 不透明度属性。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced, use the native CSS opacity property instead. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
stopPropagation
此实用程序已被删除且未被替换。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
shouldCheckPermissions
此实用程序已被删除且未被替换。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
translatedErrors
此实用程序已被删除。你应该从 @strapi/strapi/admin
包导入它:
¥This utils has been removed. You should import it from the @strapi/strapi/admin
package:
// Before
import { translatedErrors } from '@strapi/helper-plugin';
// After
import { translatedErrors } from '@strapi/strapi/admin';
如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.
wrapAxiosInstance
此实用程序已被删除且未被替换。如果你觉得需要这个实用程序,请在 Strapi 存储库上打开一个问题来讨论你的用例。
¥This util has been removed and not replaced. If you feel like you need this util, please open an issue on the Strapi repository to discuss your usecase.