wordpress - WP Gutenberg,如何导入 EditableText (作为 RichText 的替代品)?
问题描述
我需要一个古腾堡块,它要求一个没有格式的字符串
所以不是使用RichText
,我会说EditableText
是我需要的组件
在我的代码中,问题是我什至无法导入组件
import { EditableText } from '@wordpress/block-editor'
//import { EditableText } from '@wordpress/components'
import { RichText } from '@wordpress/block-editor'
console.log(EditableText) // nothing
console.log(RichText)
我可以看到里面和里面的生活RichText
,但我找不到任何地方wp.editor
wp.blocEditor
EditableText
这是为什么?此元素是否已弃用?如果是这样,在不格式化的情况下添加输入块的替代方法是什么?
编辑:我总是可以使用普通<input>
元素,如此处所述https://developer.wordpress.org/block-editor/developers/richtext/#unwanted-formatting-options-still-display但我想知道EditableText
为什么不可用或如何导入
解决方案
我认为这是因为该EditableText
块还不稳定,在当前版本中,我可以看到它是基于 RichText 组件的:
import RichText from '../rich-text';
const EditableText = forwardRef( ( props, ref ) => {
return (
<RichText
ref={ ref }
{ ...props }
__unstableDisableFormats
preserveWhiteSpace
/>
);
} );
不幸的是,当我尝试使用它时它会崩溃(我可能做错了),并且使用RichText
来自建议的代码EditableText
不起作用。
解决方案:RichText 的文档表明您可以使用该formattingControls
属性,即使它不建议用于“仅文本输入”:https ://developer.wordpress.org/block-editor/developers/richtext/#unwanted-formatting-options -静止显示
或者,要获得您的input
字段的“纯”古腾堡实现,您可以使用TextControl(注意imports
示例中的 ,它位于@wordpress/components
而不是@wordpress/blocks
):
import { TextControl } from '@wordpress/components';
import { withState } from '@wordpress/compose';
const MyTextControl = withState( {
className: '',
} )( ( { className, setState } ) => (
<TextControl
label="Additional CSS Class"
value={ className }
onChange={ ( className ) => setState( { className } ) }
/>
) );
推荐阅读
- c# - 如何使用 OpenHardwareMonitor 从 Windows 服务获取 CPU 温度?
- ios - iOS 应用程序在单击应用程序委托中的后台任务生成的本地通知时崩溃
- c# - NUnit SetupFixture 似乎不适用于 3.11 版
- java - JpaRepository 类型中的方法 findAll(Sort)
不适用于参数(规范 ) - qt - QML TreeView 的可重用 EditorDelegate
- node.js - 如何将oracle db与nodejs连接起来
- java - 无法在 tomcat 8 中部署战争文件
- java - 将字符串解析为具有空值的 Double
- sql-server - ROW_NUMBER 需要递归/循环查询帮助
- c# - 在 asp net mvc razor 中带字符串的三元