Package react4j.annotations
Annotation Interface PreUpdate
Identifies a method that is called before a view is updated or re-rendered.
There must only be one method annotated with this annotation in a view.
This method is invoked in the "commit" phase using reacts
getSnapshotBeforeUpdate()
lifecycle method.
This method is used to get access to the DOM prior to it being updated. This is useful if there is
state stored on the DOM that is not present in the VirtualDOM. The method annotated with PreUpdate
can query the DOM and then apply the necessary changes in PostMountOrUpdate
. Scroll position is an example
of data stored on the DOM but not present in the VirtualDOM and implementing auto-scrolling to new content
would require use of this lifecycle method to calculate the new offset.
The method must also conform to the following constraints:
- Must not be annotated with any other react4j annotation
- Must have 0 parameters
- Must not return a value
- Must not be private
- Must not be public
- Must not be static
- Must not be abstract
- Must not throw exceptions
- Must be accessible from the same package as the class annotated by
View
-
Should not be public as not expected to be invoked outside the view. A warning will be generated but can
be suppressed by the
SuppressWarnings
orSuppressReact4jWarnings
annotations with a key "React4j:PublicMethod". This warning is also suppressed by the annotation processor if it is implementing an interface method. -
Should not be protected if in the class annotated with the
View
annotation as the method is not expected to be invoked outside the view. A warning will be generated but can be suppressed by theSuppressWarnings
orSuppressReact4jWarnings
annotations with a key "React4j:ProtectedMethod".