"storage:end:load" event is not triggered when all components are mounted into the canvas
@vian013 please open bug issues only with a reproducible demo link, by a quick check the event seems to work properly
Read full answer below βQuestion
GrapesJS version
- I confirm to use the latest version of GrapesJS
What browser are you using?
Chrome v91
Reproducible demo link
https://grapesjs.com/demo.html
Describe the bug
How to reproduce the bug? Recently I have to upgrade grapesjs v0.14.62 to the latest version (0.21.8). In the old code, we used "storage:end:load" to do some stuff after all the components have been mounted on the canvas.
But in the current version it won't work the same anymore. As I see in the documents, "storage:end:load" will now be triggered as soon as the storage's load request is done. Is there anyway or other event to achieve the same result as before?
For now I have to use setTimeout insided "storage:end:load" callback, which seems quite uncertain and unreliable in many cases.
What is the expected behavior? "storage:end:load" is triggered after all components have been mounted on the canvas.
What is the current behavior? "storage:end:load" is triggered as soon as the storage's load request is done.
Code of Conduct
- I agree to follow this project's Code of Conduct
Answers (2)
@vian013 please open bug issues only with a reproducible demo link, by a quick check the event seems to work properly
Thanks for reporting this, @vian013.
Great question about "storage:end:load" event is not triggered when all components are mounted into the canvas. The recommended approach with Canvas is to use the event-driven API.
Start here:
- Check the GrapesJS documentation for your specific module
- Look for the
on()event listener method - Most operations can be achieved by listening to editor and component events
Common patterns:
// Listen for changes
editor.on('change', () => console.log('something changed'));
// Component lifecycle
editor.on('component:mount', (c) => console.log('component ready', c));
editor.on('component:update', (c) => console.log('component updated', c));
If you're still stuck:
- Share a minimal CodeSandbox reproduction
- Include what you've already tried
- Mention your GrapesJS version
- The community is here to help!
Related Questions and Answers
Continue research with similar issue discussions.
Issue #5378
Uncaught TypeError: Cannot read properties of undefined (reading 'Canvas') while dragging a component in Layer Manager Panel
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome v116.0.5845.97 Reproducible demo li...
Issue #4837
HTML elements ids are incremented on different pages loaded in projectData
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Firefox 109 Reproducible demo link https:/...
Issue #4848
Component content is set to empty string after inline editing
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Firefox v91.4.1 Reproducible demo link htt...
Issue #5355
On move layer
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome 116 Reproducible demo link https://...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Check the open-source GrapesJS plugins on GitHub or run a quick search in our free catalog.
Browse free plugins βPremium plugins ship with support, regular updates, and production-ready features β save days of integration work.
Browse premium plugins βRelated tutorials
In-depth guides on the same topic.
Tutorial
Find the Right GrapesJS Plugin in Seconds: Smarter Discovery Is Live
We're shipping a set of discovery upgrades. New label filters, a proper compatibility switch for GrapesJS vs Studio, one-click and a smarter sort bar.
Tutorial
GrapesJS vs Webflow vs Tilda: What to Choose for Your Business in 2026
Choosing the right website platform in 2026 is no longer just about building a site
Tutorial
GJS Market 2.0 - Donations, Tracking, Labels and Better Product Discovery
Weβve rolled out a new set of GrapesJS marketplace updates across GJS Market, focused on improving how creators distribute products
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.