Я пытаюсь написать простой плагин, который изменит поведение экрана редактирования сообщения (теперь он называется Gutenberg). Я использую @wordpress/scripts
для связывания javascript. Следующий код будет работать, чтобы отобразить элемент управления ... но когда я нажимаю переключатель, он перезагружает страницу вместо изменения состояния.
Что я делаю неправильно? Я не могу найти никакой документации о том, как использовать состояние в контексте редактора Гутенберга.
import { registerPlugin } from '@wordpress/plugins';
import { PluginMoreMenuItem } from '@wordpress/edit-post';
import { pencil } from '@wordpress/icons';
import { ToggleControl } from '@wordpress/components';
import { withState } from '@wordpress/compose';
const HemingwayModeToggleControl = withState( {
hemingwayMode: false,
} )( ( { hemingwayMode, setState } ) => (
<ToggleControl
label="Hemingway mode"
help={ hemingwayMode ? 'Hemingway mode is on.' : 'Hemingway mode is off.' }
checked={ hemingwayMode }
onChange={ () => setState( ( state ) => ( { hemingwayMode: ! state.hemingwayMode } ) ) }
/>
) );
const HemingwayModeMoreMenuItem = () => (
<PluginMoreMenuItem
icon={pencil}
>
<HemingwayModeToggleControl />
</PluginMoreMenuItem>
);
registerPlugin( 'hemingway-mode-more-menu', { render: HemingwayModeMoreMenuItem } );