#wordpress-gutenberg #gutenberg-blocks
#wordpress-gutenberg #gutenberg-blocks
Вопрос:
У меня есть пользовательский тип записи для продуктов. Я пытаюсь создать блок в Gutenberg, который позволяет пользователю выбирать продукт, а затем отображать информацию о продукте в формате плитки.
Мне удалось создать выпадающий список с названием продукта и идентификаторами, у меня возникли проблемы с сохранением выбранного идентификатора продукта в атрибутах.
import { __ } from "@wordpress/i18n";
import { withSelect } from "@wordpress/data";
import { SelectControl } from "@wordpress/components";
function edit({ products, setAttributes, attributes } = props) {
let options = [];
if (products) {
products.map((product) => {
options.push({
value: product.id,
label: product.title.rendered,
});
});
}
return (
<div className="product-selector">
<SelectControl
label={__("Select Product:")}
value={attributes.selectedProductId}
onChange={(product) => {
setAttributes({ selectedProductId: product });
}}
options={options}
/>
</div>
);
}
export default withSelect((select, props) => {
return {
products: select("core").getEntityRecords("postType", "products"),
};
})(edit);
Комментарии:
1. Какой тип атрибута
selectedProductId
определен в registerBlockType() и соответствует ли он тому, что вы пытаетесь сохранить?2. Спасибо, @S.Тип атрибута Walsh — число, а идентификатор продукта — строка. Я использовал parseInt для изменения идентификатора продукта на номер, и это сработало.