Timer
This page describes how to trigger timed events using the MauiReactor Timer object
When developing an app may happen that you need a timer that raises events regularly. In MauiReactor, as in .NET MAUI applications, you can use the timer types provided by the runtime (for example, the System.Timers.Timer class).
In MauiReactor, I recommend taking a look at Timer
type provided by the library that is better suited to be integrated into MVU applications.
A MauiReactor Timer can be created as any other widget and added as a child of any other object:
Grid(
Timer()
.IsEnabled(State.ShowCountdown)
.Interval(1000) //interval in ms
.OnTick(....)
)
Run the timer setting to true its IsEnabled property and pass an action to the OnTick property to implement your logic.
For example, in the following code, we create a timer and update a label every second:
class CounterPageState
{
public int Counter { get; set; }
public bool TimerRunning { get; set; }
}
class CounterPage : Component<CounterPageState>
{
public override VisualNode Render()
=> ContentPage("Counter Sample",
VStack(
Timer()
.IsEnabled(State.TimerRunning)
.Interval(1000)
.OnTick(() => SetState(s => s.Counter++)),
Label($"Counter: {State.Counter}"),
Button(State.TimerRunning ? "Pause" : "Run")
.OnClicked(() => SetState(s => s.TimerRunning = !s.TimerRunning))
)
.Spacing(10)
.Center()
);
}
Last updated
Was this helpful?