古登堡无线电控制保存数据但不选择无线电

时间:2020-03-16 作者:user1861582

下面的RadioControl属性保存数据,但未选中选定的无线电。我认为状态没有更新,或者我在selected 属性

我查看了文档,https://developer.wordpress.org/block-editor/components/radio-control 还有林达系列https://www.lynda.com/WordPress-tutorials/WordPress-Developing-Blocks-Gutenberg/5034179-2.html

在下面的代码中,组件在下面与块的其余部分隔离。

import { registerBlockType } from \'@wordpress/blocks\';
import {  RadioControl } from \'@wordpress/components\';

// Import our CSS files
import \'./style.scss\';
import \'./editor.scss\';

registerBlockType( \'dynamic-equine/radio\', {
    title: \'DE Radio\',
    icon: \'media-document\',
    category: \'dynamic-equine\',
    attributes: {
        position: {
            type: \'text\',
            selector: \'.position\',
        },
    },
    edit( { attributes, setAttributes } ) {

        const positionHandler = function( position ) {
            return setAttributes( {
                position: position,
            } );
        }

        return (
            <div className="container de_radio serviceCard">

                <RadioControl
                    label="Image Position"
                    selected={ attributes.positon }
                    className="position"
                    options={ [
                        { label: \'Left\', value: \'left-align\' },
                        { label: \'Right\', value: \'right-align\' },
                    ] }
                    onChange={ positionHandler }
                />

            </div>
        );
    },

    save( { attributes } ) {

        return (
            <div className="radio">
                    {attributes.position}
            </div>
        );
    },
} );
如果您能提供任何帮助,我们将不胜感激。

1 个回复
SO网友:Tom J Nowell

您的问题是由输入错误引起的:

                    selected={ attributes.positon }
positon 不同于position, 这应该在浏览器控制台中生成警告,并由相应的eslint 规则

相关推荐

如何避免WebDevStudio的WDS_Taxonomy_Radio分类Metabox类出现Foreach错误?

使用WebDevStudio的WDS\\U Taxonomy\\U Radio Taxonomy metabox类的正确方法是什么?我已经在函数中包含了代码。php文件,但我收到一个错误,错误如下:*为foreach()WDS\\u Taxonomy\\u Radio提供的参数无效。班php第45行*所以我一定是做错了什么。GitHub上的说明是:初始化类(用自己的更新分类slug)使用代码$custom_tax_mb = new WDS_Taxonomy_Radio( \'custom-tax-slug