gutenbergdocs/docs/reference-guides/data/data-core-edit-widgets.md

362 lines
7.1 KiB
Markdown
Raw Permalink Normal View History

2025-10-21 17:33:45 +00:00
# 编辑小工具
命名空间:`core/edit-widgets`
## 选择器
<!-- START TOKEN(Autogenerated selectors|../../../packages/edit-widgets/src/store/selectors.js) -->
### canInsertBlockInWidgetArea
判断是否可以将区块插入到小工具区域。
_参数_
- _state_ `Array`: 小工具区域的打开状态。
- _blockName_ `string`: 要插入的区块名称。
_返回值_
- `boolean`: 如果区块可以插入到小工具区域则返回 true。
### getEditedWidgetAreas
返回所有已编辑的小工具区域实体记录。
_返回值_
- `Object[]`: 已编辑的小工具区域实体记录列表。
### getIsWidgetAreaOpen
获取小工具区域是否处于打开状态。
_参数_
- _state_ `Array`: 小工具区域的打开状态。
- _clientId_ `string`: 小工具区域的客户端 ID。
_返回值_
- `boolean`: 如果小工具区域处于打开状态则返回 true。
### getParentWidgetAreaBlock
根据子级客户端 ID 返回父级小工具区域区块。
_参数_
- _clientId_ `string`: 小工具区域中某个区块的客户端 ID。
_返回值_
- `WPBlock`: 小工具区域区块。
### getReferenceWidgetBlocks
返回所有表示引用小工具的区块。
_参数_
- _referenceWidgetName_ `string`: 可选参数。如果指定,则只返回具有此名称的引用小工具。
_返回值_
- `Array`: 表示引用小工具的所有区块列表。
### getWidget
返回特定小工具 ID 的 API 小工具数据。
_参数_
- _id_ `number`: 小工具 ID。
_返回值_
- `Object`: 特定小工具 ID 的 API 小工具数据。
### getWidgetAreaForWidgetId
返回包含指定 widgetId 所标识区块的小工具区域。
_参数_
- _widgetId_ `string`: 小工具的 ID。
_返回值_
- `Object`: 包含小工具区域的对象。
### getWidgetAreas
返回所有 API 小工具区域。
_返回值_
- `Object[]`: API 小工具区域列表。
### getWidgets
返回所有 API 小工具。
_返回值_
- `Object[]`: API 小工具列表。
### isInserterOpened
判断插入器是否处于打开状态。
_参数_
- _state_ `Object`: 全局应用状态。
_返回值_
- `boolean`: 插入器是否处于打开状态。
### isListViewOpened
判断列表视图是否处于打开状态。
_参数_
- _state_ `Object`: 全局应用状态。
_返回值_
- `boolean`: 列表视图是否处于打开状态。
### isSavingWidgetAreas
判断是否有小工具区域正在被保存。
_返回值_
- `boolean`: 如果有小工具区域正在被保存则返回 true否则返回 false。
### isWidgetSavingLocked
返回小工具保存是否被锁定。
_用法_
```jsx
import { __ } from '@wordpress/i18n';
import { store as widgetStore } from '@wordpress/edit-widgets';
import { useSelect } from '@wordpress/data';
const ExampleComponent = () => {
const isSavingLocked = useSelect(
( select ) => select( widgetStore ).isWidgetSavingLocked(),
[]
);
return isSavingLocked ? (
<p>{ __( '小工具保存已被锁定' ) }</p>
) : (
<p>{ __( '小工具保存未被锁定' ) }</p>
);
};
```
_参数_
- _state_ `Object`: 全局应用状态。
_返回值_
- `boolean`: 是否被锁定。
<!-- END TOKEN(Autogenerated selectors|../../../packages/edit-widgets/src/store/selectors.js) -->
## 操作
<!-- START TOKEN(Autogenerated actions|../../../packages/edit-widgets/src/store/actions.js) -->
### closeGeneralSidebar
返回表示用户关闭侧边栏的操作对象。
_返回值_
- `Object`: 操作创建器。
### lockWidgetSaving
返回用于表示小工具保存被锁定的操作对象。
_用法_
```js
import { store as widgetStore } from '@wordpress/edit-widgets';
import { useDispatch } from '@wordpress/data';
const ExampleComponent = () => {
const { lockWidgetSaving } = useDispatch( widgetStore );
return (
<Button onClick={ () => lockWidgetSaving( 'lockName' ) }>
{ __( '锁定小工具保存' ) }
</Button>
);
};
```
_参数_
- _lockName_ `string`: 锁名称。
_返回值_
- `Object`: 操作对象。
### moveBlockToWidgetArea
处理在小工具区域之间移动区块的操作。
_参数_
- _clientId_ `string`: 要移动区块的客户端 ID。
- _widgetAreaId_ `string`: 要将区块移动到的目标小工具区域 ID。
### persistStubPost
将指定 ID 的存根文章持久化到核心数据存储中。该文章仅存在于内存中,不应通过 API 保存。
_参数_
- _id_ `string`: 文章 ID。
- _blocks_ `Array`: 文章应包含的区块。
_返回值_
- `Object`: 文章对象。
### saveEditedWidgetAreas
将已编辑小工具区域中的所有区块转换为小工具,并提交批量请求一次性保存所有内容。
在成功或出错时创建 snackbar 通知。
_返回值_
- `Function`: 操作创建器。
### saveWidgetArea
将指定 ID 的小工具区域中的所有区块转换为小工具,并提交批量请求一次性保存所有内容。
_参数_
- _widgetAreaId_ `string`: 要处理的小工具区域 ID。
_返回值_
- `Function`: 操作创建器。
### saveWidgetAreas
将指定小工具区域中的所有区块转换为小工具,并提交批量请求一次性保存所有内容。
_参数_
- _widgetAreas_ `Object[]`: 要保存的小工具区域。
_返回值_
- `Function`: 操作创建器。
### setIsInserterOpened
返回用于打开/关闭插入器的操作对象。
_参数_
- _value_ `boolean|Object`: 插入器应打开true还是关闭false。要指定插入点请使用对象。
- _value.rootClientId_ `string`: 要插入的根客户端 ID。
- _value.insertionIndex_ `number`: 要插入的索引位置。
_返回值_
- `Object`: 操作对象。
### setIsListViewOpened
返回用于打开/关闭列表视图的操作对象。
_参数_
- _isOpen_ `boolean`: 表示列表视图应打开还是关闭的布尔值。
_返回值_
- `Object`: 操作对象。
### setIsWidgetAreaOpen
设置小工具区域的打开状态。
_参数_
- _clientId_ `string`: 小工具区域的客户端 ID。
- _isOpen_ `boolean`: 小工具区域是否应打开。
_返回值_
- `Object`: 操作。
### setWidgetAreasOpenState
设置所有小工具区域的打开状态。
_参数_
- _widgetAreasOpenState_ `Object`: 所有小工具区域的打开状态。
_返回值_
- `Object`: 操作。
### setWidgetIdForClientId
设置特定 widgetId 对应的客户端 ID。
_参数_
- _clientId_ `number`: 客户端 ID。
- _widgetId_ `number`: 小工具 ID。
_返回值_
- `Object`: 操作。
### unlockWidgetSaving
返回用于表示小工具保存已解锁的操作对象。
_用法_
```js
import { store as widgetStore } from '@wordpress/edit-widgets';
import { useDispatch } from '@wordpress/data';
const ExampleComponent = () => {
const { unlockWidgetSaving } = useDispatch( widgetStore );
return (
<Button onClick={ () => unlockWidgetSaving( 'lockName' ) }>
{ __( '解锁小工具保存' ) }
</Button>
);
};
```
_参数_
- _lockName_ `string`: 锁名称。
_返回值_
- `Object`: 操作对象。
<!-- END TOKEN(Autogenerated actions|../../../packages/edit-widgets/src/store/actions.js) -->