如何在 WordPress 中使用简单的自定义 gutenberg 块获取唯一 ID?
How to get a unique id with a simple custom gutenberg block in WordPress?
我正在尝试为每个自定义古腾堡块获取唯一 ID。我被发现 useInstanceId。这种语法可以使用吗?
registerBlockType('custom/block', {
title: 'Custom',
edit() {
return (<p>{unqiue-block-id}</p>)
},
save() {
return (<p>{unqiue-block-id}</p>)
},
});
你可以用 props
中的 clientId
来解决这个问题。不幸的是,它只存在于编辑功能的道具中。因此,您需要将 clientId 作为额外属性提供。
我自己在用 useInstanceId
完成这件事时遇到了太多困难,因为如果我理解正确的话,你需要用 HigherComponent 来完成它。所以我选择了 clientId
解决方案。
我最初的想法来自 here
使用 clientId
.
您的代码可能看起来像这样
registerBlockType('custom/block', {
title: 'Custom',
attributes: {
yourId: {
type: 'string',
}
},
edit: props => {
const {
attributes: {
yourId,
},
clientId,
setAttributes,
} = props;
setAttributes({ yourId: clientId });
return (
<p>{yourId}</p>
);
},
save: props => {
const {
attributes: {
yourId,
},
} = props;
return (
<p>{yourId}</p>
);
},
});
我正在尝试为每个自定义古腾堡块获取唯一 ID。我被发现 useInstanceId。这种语法可以使用吗?
registerBlockType('custom/block', {
title: 'Custom',
edit() {
return (<p>{unqiue-block-id}</p>)
},
save() {
return (<p>{unqiue-block-id}</p>)
},
});
你可以用 props
中的 clientId
来解决这个问题。不幸的是,它只存在于编辑功能的道具中。因此,您需要将 clientId 作为额外属性提供。
我自己在用 useInstanceId
完成这件事时遇到了太多困难,因为如果我理解正确的话,你需要用 HigherComponent 来完成它。所以我选择了 clientId
解决方案。
我最初的想法来自 here
使用 clientId
.
registerBlockType('custom/block', {
title: 'Custom',
attributes: {
yourId: {
type: 'string',
}
},
edit: props => {
const {
attributes: {
yourId,
},
clientId,
setAttributes,
} = props;
setAttributes({ yourId: clientId });
return (
<p>{yourId}</p>
);
},
save: props => {
const {
attributes: {
yourId,
},
} = props;
return (
<p>{yourId}</p>
);
},
});