Component Properties

When creating a component you almost always need to pass props (or parameters/property values) in order to customize its appear or behavior. In ReactorUI you can use plain properties.

Take for example this component that implement an activity indicator with a label:

public class BusyComponent : RxComponent
{
    private string _message;
    private bool _isBusy;

    public BusyComponent Message(string message)
    {
        _message = message;
        return this;
    }

    public BusyComponent IsBusy(bool isBusy)
    {
        _isBusy = isBusy;
        return this;
    }

    public override VisualNode Render()
    {
        return new RxStackLayout()
        {
            new RxActivityIndicator()
                .IsRunning(_isBusy),
            new RxLabel()
                .Text(_message)
        };
    }
}

and this is how we can use it in a page:

NOTE: If you need to set properties of components hosted in a different page you should use a Props object (see Navigation)

Last updated

Was this helpful?