ServerSideRender组件产生“错误加载块:找不到与URL和请求方法匹配的路由”错误

时间:2019-11-24 14:00:23

标签: wordpress wordpress-gutenberg gutenberg-blocks create-guten-block

我正在使用create-guten-block foss在Gutenberg块中工作。尝试从用PHP文件编写的函数获取输出时,我在古腾堡(Gutenberg)编辑器的模块中看到Error loading block: No route was found matching the URL and request method错误。

plugin.php中考虑以下代码:

function test_me_render_serverside_handler($args) {
    return "<p>testCategory: " . $args["testCategory"] . "</p>";
}

function test_me_register_block_type() {
    register_block_type(
        'test-me/test-to-block', array(
            'render_callback' => 'test_me_render_serberside_handler',
            'attributes' => array(
                'testCategory' => array(),
            ),
        )
    );
}

add_action( 'init', 'test_me_register_block_type' );

,block.js文件中的react代码为:

attributes: {
    adCategory: { // Required
        type: 'integer',
    },
},

edit: ( props ) => {
    const { className, setAttributes, attributes } = props;
    const { adCategory } = attributes;

    return (
        <div className={ className }>
        {
            createElement( ServerSideRender, {
                block: 'test-me/test-to-block',
                attributes: attributes,
            } )
        }
        </div>
    );
},

尝试在gutenberg编辑器中创建块时,我发现错误test-me/test-to-block,这是对wp-json/wp/v2/block-renderer/test-me/test-to-block的请求

我缺少为该模块启用剩余api路由的东西吗?

1 个答案:

答案 0 :(得分:0)

好吧,问题出在函数名“ test_me_render_serverside_handler”和test_me_render_serberside_handler的错字。 并且我们还需要在php函数和js属性中保持attributes的相同名称和类型。