Компоненты ServerSideRender выдают ошибку "Ошибка загрузки блока: не найден маршрут, соответствующий URL-адресу и методу запроса"

Я работаю над блоком Гутенберга, используя create-guten-blockокаменелость. При попытке получить вывод функции, записанной в файле PHP, я вижу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:

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

Мне что-то не хватает, чтобы включить маршрутизацию rest api для этого блока?

1 ответ

Что ж, проблема заключалась в опечатке в имени функции: test_me_render_serverside_handler и test_me_render_serberside_handler. И нам также необходимо сохранить одно и то же имя и типattributes в функции php и в атрибутах js.

Другие вопросы по тегам