ampproject/amp-react-prototype

Property change states

dvoytenko opened this issue · 0 comments

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.