Use case: <amp-carousel current-slide={value}>. The currentSlide is currently a "state" value and this is preferable. We could consider making it a controlled property coupled with onSlideChange callback, but that'd expand the API surface for something very simple. However, what should happen if the currentSlide prop (or "current-slide" attribute in DOM) has been updated? The simplified useStateFromProp hook supports updating the internal state when a prop changes, but it's not without issues. For instance, assuming the default prop/attribute value of currentSlide = 0, if the currentSlide state has been updated and the script simply wants to reset it back to the first slide, setting the currentSlide back to 0 will not work since technically the property's value will not change.
Use case:
<amp-carousel current-slide={value}>
. ThecurrentSlide
is currently a "state" value and this is preferable. We could consider making it a controlled property coupled withonSlideChange
callback, but that'd expand the API surface for something very simple. However, what should happen if thecurrentSlide
prop (or "current-slide" attribute in DOM) has been updated? The simplified useStateFromProp hook supports updating the internal state when a prop changes, but it's not without issues. For instance, assuming the default prop/attribute value ofcurrentSlide = 0
, if thecurrentSlide
state has been updated and the script simply wants to reset it back to the first slide, setting thecurrentSlide
back to0
will not work since technically the property's value will not change.