通知的状态管理和 UI 组件。
安装
安装模块
npm install @wordpress/notices
此包假定你的代码将在 ES2015+ 环境中运行。如果你使用的环境对此类语言特性和 API 的支持有限或完全不支持,你应在代码中引入 @wordpress/babel-preset-default 中附带的 polyfill。
用法
导入后,notices 模块会在 core/notices 命名空间上注册一个数据存储。在 WordPress 中,可通过 wp.data.dispatch( 'core/notices' ) 访问该数据存储。
有关从数据存储中消费数据的更多信息,请参阅 @wordpress/data 的数据访问和操作文档。
有关 core/notices 命名空间中可用的全部 actions 和 selectors 的列表,请参阅 Notices Data 手册页。
组件
该包还导出了由 core/notices store 驱动的开箱即用的通知 UI 组件。
InlineNotices
渲染类型为 default 的通知列表:
- 固定列表中的不可关闭通知。
- 可移除列表中的可关闭通知。
children 会渲染在可关闭列表中。
属性
children: ReactNode(可选):在可关闭通知列表中渲染的附加内容。className: string(可选):添加到内联通知包装器的额外类名。pinnedNoticesClassName: string(可选):添加到固定列表的额外类名。dismissibleNoticesClassName: string(可选):添加到可关闭列表的额外类名。context: string(可选):用于读取和移除通知的通知上下文。默认值为default。
SnackbarNotices
使用 SnackbarList 渲染类型为 snackbar 的通知。
- 它会渲染最近三个 snackbar 通知。
- 关闭操作已连接到
removeNotice。
属性
className: string(可选):添加到 snackbar 列表的额外类名。context: string(可选):用于读取和移除通知的通知上下文。默认值为default。
示例
import { useDispatch } from '@wordpress/data';
import {
InlineNotices,
SnackbarNotices,
store as noticesStore,
} from '@wordpress/notices';
function AppNotices() {
const { createSuccessNotice } = useDispatch( noticesStore );
const noticeContext = 'my-plugin/screen';
return (
<>
<button
onClick={ () =>
createSuccessNotice( 'Saved successfully.', {
type: 'snackbar',
context: noticeContext,
} )
}
>
Create snackbar notice
</button>
<InlineNotices
pinnedNoticesClassName="my-plugin-notices__pinned"
dismissibleNoticesClassName="my-plugin-notices__dismissible"
context={ noticeContext }
/>
<SnackbarNotices
className="my-plugin-notices__snackbar"
context={ noticeContext }
/>
</>
);
}
为此包做贡献
这是一个独立包,是 Gutenberg 项目的一部分。该项目组织为 monorepo。它由多个自包含的软件包组成,每个包都有特定用途。此 monorepo 中的包发布到 npm,并由 WordPress 以及其他软件项目使用。
要了解更多关于为此包或整个 Gutenberg 项目做贡献的信息,请阅读项目的主要 贡献者指南。