我能够获得要保存的值,但现在我遇到了在从控件中删除数据时使值不稳定的问题。我已经按照Github文档中的建议尝试了onRemove函数here.
由于某种原因,我无法启动此函数,因此即使URL从控件中删除,它仍存储在状态。
任何帮助都将不胜感激!
import { __experimentalLinkControl as LinkControl } from \'@wordpress/block-editor\';
export default function Edit ( { attributes: { linkURL }, setAttributes } ) {
const handleLinkChange = ( value ) => {
setAttributes( {
linkURL: value.url
} );
};
// This function doesn\'t seem to be firing
const handleLinkRemove = () => {
console.log( \'remove link\' ); // This does not run on remove of the link
setAttributes( {
linkURL: null
} );
};
return (
<LinkControl
onChange={ handleLinkChange }
onRemove={ handleLinkRemove }
value={ { url: linkURL } }
/>
);
}
@汤姆非常感谢你的帮助。我是stackexchange的新手,所以我不知道在哪里添加下面的屏幕截图。
这里有更多的背景:我工作的公司正在从ACF过渡到块编辑器。我们的内容编辑器习惯于使用多功能链接组件,允许他们进行内部/外部链接以及PDF或YouTube模式弹出窗口的链接。我正在尝试用一个自定义组件重新创建它,我们可以在需要时将其放入块中。下面的屏幕截图显示了我试图实现的变化:
如果我们的一个内容编辑器向LinkControl添加了一个url,但决定使用PDF或YouTube链接,那么他们就无法真正从状态中删除url。当他们删除URL时,该字段将显示为空,但当他们再次保存帖子时,该LinkControl字段将重新填充状态为的数据。
也许我使用了错误的组件来实现这一点,但我喜欢编辑器能够从下拉列表中选择页面并控制新选项卡中的打开。
您提到,如果条件正确,则可以使用取消链接按钮,但我还不知道如何满足这些条件。我愿意接受任何建议。