Issue #6180Opened September 30, 2024by padcom1 reactions

BUG: Trait's `setValue()` method not called when value changes

Question

GrapesJS version

  • I confirm to use the latest version of GrapesJS

What browser are you using?

Chrome latest

Reproducible demo link

https://codesandbox.io/p/sandbox/withered-rgb-xmw8gk

Describe the bug

How to reproduce the bug?

  1. Open code sandbox
  2. Select "body" (type: 'wrapper') - observe alert about getting value from custom source (trait.getValue() is called)
  3. Try to change the value (trait: custom, the only one there) - observe the "setValue()" is not called as no alert is shown

What is the expected behavior? An alert "Setting global value to " + value is shown

What is the current behavior? Alert not shown, the trait.setValue() method is not called.

If is necessary to execute some code in order to reproduce the bug, paste it here below:

// your code here

Code of Conduct

  • I agree to follow this project's Code of Conduct

Answers (3)

padcomOctober 21, 20241 reactions

Thank you! I verified and it is working as expected!

padcomSeptember 30, 20240 reactions

From what I can see the Trait.setValue() is not called when the value comes from an input. Instead the setTargetValue() is called which doesn't check if the setValue() method of the trait definition is there. Also, the Trait.setValue() checks for the setValue key in attributes whereas Trait.getValue() gets its custom getter via this.get('getValue') (Trait.ts:303)

padcomSeptember 30, 20240 reactions

I tried following this discussion to get it working but as you can see in the sandbox it just doesn't work.

Related Questions and Answers

Continue research with similar issue discussions.

Paid Plugins That Match This Issue

Curated by issue keywords and label relevance to help you ship faster.

View all plugins

Loading paid plugin recommendations...

Browse Plugin Categories

Jump directly to plugin category pages on the marketplace.