Gutenberg 块在选择元素时显示某些内容

Gutenberg block show something when element is selected

我正在构建一个 Gutenberg 块,并试图在选择元素时显示输入。

    <RichText
        tagName="a"
        className="button"
        placeholder={ __( 'Text...' ) }
        keepPlaceholderOnFocus={ true }
        value={ text }
        onChange={ ( value ) => setAttributes( { text: value } ) }
    />                      
   { isSelected && (

        <form
            className="inline-input"
            onSubmit={ ( event ) => event.preventDefault() }>
            <URLInput
            value={ URL }
            onChange={ ( value ) => setAttributes( { URL: value } ) }
         />
        </form>
  ) }

When the element with class name "button" is selected the form should show.相反,表格从头开始显示。我使用 isSelected 错了吗?

我仍在为 Gutenberg/Block 编辑器学习 REACT。但是我设法想出了一个解决方法。

您需要对元素 (shorthand) 使用 IF 条件。您可以使用 className hidden 来 show/hide 一个元素。

 <form
        className={ !your_attribute ? "hidden" : "inline-input" }
        onSubmit={ ( event ) => event.preventDefault() }>
        <URLInput
        value={ URL }
        onChange={ ( value ) => setAttributes( { URL: value } ) }
     />
    </form>

如果用户单击块使其成为 "active",则使用 isSelected。在这种情况下,您也可以使用状态。我只是发现如果用户选择按钮然后保存他们的 post/page.

,这将保持表单显示

如前所述,我仍在学习 REACT + Gutenberg/Block 编辑器。希望对您有所帮助。