Я хочу получить JSON объект из пользовательской конечной точки и применить его в качестве параметров для компонента React Select.
Регистрация моей пользовательской конечной точки
register_rest_route('namespace/v1', 'products', array(
'methods' => WP_REST_Server::READABLE,
'callback' => 'namespace_result_products',
));
JSON объект, который показывает веб-браузер ниже. Я думаю, что все в порядке.
[
{
"value": 15,
"label": "Apple"
},
{
"value": 21,
"label": "Banana"
},
{
"value": 18,
"label": "Apple"
},...
Функция редактирования моего пользовательского блока Гутенберга.
edit: props => {
const { attributes: { selectedOption }, setAttributes } = props;
const handleSelectChange = ( selectedOption ) => setAttributes( { selectedOption: JSON.stringify( selectedOption ) } );
return (
<InspectorControls>
<PanelBody
title={ 'Products'}
>
<PanelRow>
<Select
name='select'
value={ JSON.parse( selectedOption ) }
onChange={ handleSelectChange }
options={[
// !!!!!!!! I want to apply my JSON data here !!!!!!!!
]}
isMulti='true'
/>
</PanelRow>
</PanelBody>
</InspectorControls>
)
},
При жестком кодировании это прекрасно работает.
<PanelRow>
<Select
name='select'
value={ JSON.parse( selectedOption ) }
onChange={ handleSelectChange }
options={[
{ value: '15', label: 'Apple' },
{ value: '21', label: 'Banana' },
{ value: '18', label: 'Apple' },
]}
isMulti='true'
/>
</PanelRow>
Спасибо заранее.