adobe / react-webcomponent

This projects automates the wrapping of a React component in a CustomElement.
Apache License 2.0
105 stars 19 forks source link

Default model values are passed for attributes that are not present #13

Open cuberoot opened 5 years ago

cuberoot commented 5 years ago

Expected Behaviour

If I have defined a model where I specify a boolean attribute. e.g. @byBooleanAttrVal() checked. And, I have an instance of my web component where I do not specify that attribute (e.g. . The props passed to my React components render method contain the checked prop set to the default value from the model definition.

Actual Behaviour

I would expect any model attributes that are not specified to not be passed as props. Otherwise, I have no way of telling whether the user set that attribute or not.

Reproduce Scenario (including but not limited to)

I was wrapping up a React implemented checkbox widget.

Steps to Reproduce

  1. Create a React component that takes a boolean prop
  2. Create a model for that component that uses @byBooleanAttrVal()
  3. Instantiate the web component without using the boolean attribute from your model
  4. Set a breakpoint in the render method of your React component
  5. Look at the props and see that the boolean prop has been passed in

Platform and Version

Chrome 72

Sample Code that illustrates the problem

Logs taken while reproducing problem