@Retention(value=CLASS) public @interface Param
Event
callbacks i.e. EventHandler
. An argument
in the event handler annotated with Param
will add it in the generated Component
.
This will allow to pass relevant arguments to the event handler while dispatching events. This is
especially useful when event handlers can be reused.
For Example:
@LayoutSpec
class FacePileComponentSpec {
@OnCreateLayout
static Component onCreateLayout(
ComponentContext c,
@Prop Uri[] faces) {
Component.Builder builder = Column.create(c);
for (Uri face : faces) {
builder.child(
FrescoImage.create(c)
.uri(face)
.clickHandler(FacePileComponent.onFaceClicked(c, face)));
}
return builder.build();
}
@OnEvent(ClickEvent.class)
static void onFaceClicked(
ComponentContext c,
@Param Uri face) {
// Use the param face here
Log.d("FacePileComponent", "Face clicked: " + face);
}
}