Я закончил учебник WordPress Gutenberg, в котором у меня есть эта функция;
var mapSelectToProps = function( select ) {
return {
metaFieldValue: select( 'core/editor' )
.getEditedPostAttribute( 'meta' )
[ 'sidebar_plugin_meta_block_field' ],
}
}
Я хочу изменить этот код так, чтобы вместо имени мета-поля 'sidebar_plugin_meta_block_field' было жестко закодировано в функции, которую оно передается в качестве параметра.
Я пробовал это, но получил очень странные результаты:
var meta_key_name = 'sidebar_plugin_meta_block_field';
console.log("key 1 "+meta_key_name);
var mapSelectToProps = function( select, meta_key_name ) {
console.log("key 2 "+meta_key_name);
return {
metaFieldValue: select( 'core/editor' )
.getEditedPostAttribute( 'meta' )
[ { meta_key_name } ],
}
}
В консоли вывод для клавиши 1, как и следовало ожидать, представляет собой текстовую строку - 'sidebar_plugin_meta_block_field'
Тем не менее, ключ 2 выводится на консоль [объект Object]
При дальнейшем изучении это, похоже, имеет один атрибут - setMetaFieldValue И, похоже, содержит ссылку на функцию - function () {var t; return (t = n.current (r.dispatch, r)) [e] .apply (t, arguments)}
Итак, мой вопрос: почему я не могу передать в эту функцию простой текстовый параметр?
Весь код находится внутри функции, вызывающей себя
( function( wp ) {
.....
} )( window.wp );
Спасибо за вашу помощь.