Notice 组件用于向用户显示重要的非模态消息,支持多种状态和交互选项。它位于屏幕顶部,可持久显示,用户可选择忽略或关闭。
import { Notice } from '@wordpress/components';
const MyNotice = () => (
<Notice status="error">An unknown error occurred.</Notice>
);Use Notices to communicate prominent messages to the user.

A Notice displays a succinct message. It can also offer the user options, like viewing a published post or updating a setting, and requires a user action to be dismissed.
Use Notices to communicate things that are important but don’t necessarily require action — a user can keep using the product even if they don’t choose to act on a Notice. They are less interruptive than a Modal.
Notices display at the top of the screen, below any toolbars anchored to the top of the page. They’re persistent and non-modal. Since they don’t overlay the content, users can ignore or dismiss them, and choose when to interact with them.
Notices are color-coded to indicate the type of message being communicated:
Theme component with an accent color prop, informational notices will take on that color instead.If an icon is included in the Notice, it should be color-coded to match the Notice state.
Do use a Notice when you want to communicate a message of medium importance.

Don’t use a Notice for a message that requires immediate attention and action from the user. Use a Modal for this instead.

Do display Notices at the top of the screen, below any toolbars.

Don’t show Notices on top of toolbars.

Do use color to indicate the type of message being communicated.

Don’t apply any colors other than those for Warnings, Success, or Errors.

To display a plain notice, pass Notice a string:
import { Notice } from '@wordpress/components';
const MyNotice = () => (
<Notice status="error">An unknown error occurred.</Notice>
);
For more complex markup, you can pass any JSX element:
import { Notice } from '@wordpress/components';
const MyNotice = () => (
<Notice status="error">
<p>
An error occurred: <code>{ errorDetails }</code>.
</p>
</Notice>
);
The following props are used to control the behavior of the component.
children: ReactNodeThe displayed message of a notice. Also used as the spoken message for assistive technology, unless spokenMessage is provided as an alternative message.
spokenMessage: ReactNodeUsed to provide a custom spoken message in place of the children default.
childrenstatus: 'warning' | 'success' | 'error' | 'info'Determines the color of the notice: warning (yellow), success (green), error (red), or 'info'. By default 'info' will be blue, but if there is a parent Theme component with an accent color prop, the notice will take on that color instead.
infoonRemove: () => voidA function called to dismiss/remove the notice.
nooppoliteness: 'polite' | 'assertive'A politeness level for the notice’s spoken message. Should be provided as one of the valid options for an aria-live attribute value.
'assertive' is to be used for important, and usually time-sensitive, information. It will interrupt anything else the screen reader is announcing in that moment.'polite' is to be used for advisory information. It should not interrupt what the screen reader is announcing in that moment (the “speech queue”) or interrupt the current task.Note that this value should be considered a suggestion; assistive technologies may override it based on internal heuristics.
'assertive' or 'polite', based on the notice status.isDismissible: booleanWhether the notice should be dismissible or not
trueonDismiss : () => voidA deprecated alternative to onRemove. This prop is kept for compatibility reasons but should be avoided.
noopactions: Array<NoticeAction>.An array of notice actions. Each member object should contain:
label: string containing the text of the button/linkurl: string (optional) The href URL for the action button. If provided, the action will render as an anchor tag.onClick: ( event: SyntheticEvent ) => void (optional) Function to call when clicked. Can be used alongside url.disabled: boolean (optional) Whether the action button is disabled.className: string (optional) to add custom classes to the button styles.noDefaultClasses: boolean (optional) A value of true will remove all default styling.variant: 'primary' | 'secondary' | 'link' (optional) You can denote a primary button action for a notice by passing a value of primary.The default variant of an action button is 'secondary' if only onClick is provided, or 'link' if url is provided.