I try to make a Gutenberg plugin but I have problem to set a value of attributes.
I npm this template
npx @wordpress/create-block example-plugin --template @ryanwelcher/multiple-blocks-template
because I want create a multiblock plugin.
the problem is where and how register attributes.
I register it on block.json:
"attributes": {
"content": {
"type": "string",
"selector": "h2"
}
},
Then I used it on edit.js
export default function Edit({attributes: {content}, setAttribute}) {
const blockProps = useBlockProps();
return (
<p {...useBlockProps()}>
<input value={content} />
<TextControl label="Question:" value={content}
allowedFormats={["core/italic"]}
onChange={x => setAttributes({content: x})} >
{__('larum ipsume', 'page-builder')}
</p>
);
}
this method work but I have an error. I cannot write all sentence but just first letter and it refresh my input.
Edit()
's arguments is missing ans
- you should be receiving an error in the JS console detailing thatsetAttributes is not defined
. Additionally, with nosource
argument specified in yourblock.json
configuration the attribute should be stored in an HTML comment, but you've specified aselector
argument which might be causing an unexpected behavior. Try correcting the typo and removing"selector": "h2"
from yourblocks.json
file.