Mobile render on variable changes in client action
Application Type
Mobile, Reactive
Service Studio Version
11.10.22 (Build 42083)

Hi all,


I'm having some doubts about rendering in mobile (and reactive).

When a local variable is changed within a client (screen) action, I suspected that this change would be visible on the screen before the client action reaches the end node. If I'm not mistaken, this has been the behavior in mobile apps (and I expected similar behavior in Reactive). As you might suspect, this is not the case right now.

In the example attached, a local variable 'IsEnabled' is manipulated by a screen action. This action is triggered by a button. The screen action contains some logic to wait three seconds before continuing. In the meantime the button and input should be disabled. The OnRender event is only triggered after the screen action is finished.

Does the behavior described above sound familiar? If so, is this something that has been changed in an update? Or am I doing something wrong?

Link to demo application: https://sam-rijkers.outsystemscloud.com/PreviewInDevices/?IsMobilePreview=True&DeviceName=Smartphone&URL=/OnRenderTest/LocalVariableClickTest

Find the .OML attached.


Thanks in advance,

Sam

OnRenderTest.oml

Hello Sam

What you have said is exactly working in the Demo. I am not sure about the question and how may we help you. I am sorry for not getting it from the above requirement, can you please elaborate! 

Hey Manish,

See image below for what I can see. Indeed the page freezes for a bit. In the case of the image below it seems as if the button is disabled. In fact, it has the styling as if the button is being clicked still, not disabled. The button on the right actually is disabled. I would expect the OnRender to be triggered earlier on, and the top left button being actually disabled (instead of the page freezing).


Edit:
The input should be temporarily disabled as well. I've added an definite disabled input for comparison as well (see image below).


Okay, so if someone has clicked on the Button you want the Button and Input box needs to be Freeze / Disable instead of the entire screen. So, while rendering someone cannot request again and again. 

Am I correct? I am sorry for asking this again but I want to be sure in challenge before trying to solve it. 

Many thanks in advance for your corporation to confirm my understanding. 

As an example, yes. My question is about the behavior in general, and I'm trying to show it with the pattern you described.

I've been checking the forum and ran into this post, which describes exactly what I thought should work (but currently does not):

"I've been able to solve this using a custom boolean on the enabled property which is immediately set when the client action is fired. Because the property is immediately set on mobile, the UI also responds immediately.  [...]"

https://www.outsystems.com/forums/discussion/21376/button-pressed-twice-on-mobile-before-action-is-executed-prevent-this/#Post83760

Perfect. Glad to see you have solved this. Please feel free to ask for any further assistance. 


Unfortunately I haven't solved the issue. The post I've linked describes the behavior I expected. The issue is that it's not working as I would expect (and as it is described in the post that I referred to).

I would like to find out why it is not working anymore.

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.