跳到主要内容

Store Notices Store (wc/store/store-notices)

概述

Store Notices Store 允许注册和取消注册用于显示通知的容器。 这对于在特定位置显示通知非常有用,例如自定义块。

使用方法

要使用此存储,您需要在任何引用它的模块中导入 storeNoticesStore StoreDescriptor。 假设 @woocommerce/block-data 已注册为指向 wc.wcBlocksData 的外部依赖,您可以这样导入 StoreDescriptor

import { storeNoticesStore } from '@woocommerce/block-data';

如果不是,则可以从 window 对象中访问它:

const { storeNoticesStore } = window.wc.wcBlocksData;

示例

以下代码片段演示了如何注册一个用于显示通知的容器。

import { store as noticesStore } from '@wordpress/notices';

export default function Block( attributes ) {
const context = 'your-namespace/custom-form-step';

dispatch( noticesStore ).createNotice(
'error',
'这是一个错误通知的示例。',
{ context }
);

return (
<>
<StoreNoticesContainer context={ context } />
{ /* 您的自定义块代码 */ }
</>
);
}

💡 内部,StoreNoticesContainer 组件将派发 registerContainer 操作。

请注意,这是一个简单的示例。 在实际应用中,您希望在用户操作(例如提交表单)时触发 createNotice 操作。

操作

registerContainer( containerContext )

此操作将注册一个新的容器。

参数

  • containerContext string: 要注册的容器的上下文或标识符。

返回值

  • object: 一个包含以下属性的操作对象:
    • type string: 操作的类型。
    • containerContext string: 传递的 containerContext

示例

import { storeNoticesStore } from '@woocommerce/block-data';

dispatch( storeNoticesStore ).registerContainer( 'someContainerContext' );

unregisterContainer( containerContext )

此操作将取消注册一个现有的容器。

参数

  • containerContext string: 要取消注册的容器的上下文或标识符。

返回值

  • object: 一个包含以下属性的操作对象:
    • type string: 操作的类型。
    • containerContext string: 传递的 containerContext

示例

import { storeNoticesStore } from '@woocommerce/block-data';

dispatch( storeNoticesStore ).unregisterContainer( 'someContainerContext' );

选择器

getRegisteredContainers

返回当前状态中已注册容器的列表。

返回值

  • string[]: 一个包含已注册容器上下文的字符串数组。

示例

import { storeNoticesStore } from '@woocommerce/block-data';

关于容器注册和管理的文档

本文档描述了如何注册和管理容器。

NOTICE: 请仔细阅读以下内容,以确保正确配置您的系统。

本系统允许您注册和管理容器。每个容器都必须在系统中进行注册,才能被使用。

以下是如何注册容器的步骤:

  1. 使用 register(containerName) 命令注册一个新容器。
  2. 确保容器包含所有必需的文件和配置。
  3. 验证容器是否已成功注册。

以下是如何管理已注册容器的步骤:

  1. 使用 listContainers() 命令列出所有已注册的容器。
  2. 使用 select(containerName) 命令选择一个特定的容器。
  3. 使用 delete(containerName) 命令删除一个容器。

重要提示: 确保您拥有足够的权限才能执行这些操作。

以下是一个示例代码片段,展示了如何注册和获取已注册的容器:

const store = select( storeNoticesStore );
const registeredContainers = store.getRegisteredContainers();

解释:

  • store:一个商店对象,用于存储和管理数据。
  • select(storeNoticesStore):选择名为 storeNoticesStore 的商店。
  • getRegisteredContainers():获取所有已注册的容器列表。

常见问题:

  • 问题: 为什么我的容器无法注册?
    • 答案: 确保您已满足所有注册要求,并且您拥有足够的权限。
  • 问题: 我可以同时注册多少个容器?
    • 答案: 这取决于您的系统配置。请查阅您的系统管理员。
  • 问题: 如何更新已注册的容器?
    • 答案: 您需要先删除该容器,然后重新注册它。

其他信息:

希望本文档对您有所帮助。 如果您有任何问题,请联系我们的技术支持团队。