# Popup rendering behavior

**URL:** <https://forum.inductiveautomation.com/t/popup-rendering-behavior/114838>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [April 1, 2026, 6:59pm UTC](https://forum.inductiveautomation.com/t/popup-rendering-behavior/114838 "2026-04-01T18:59:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tom-L](https://avatars.discourse-cdn.com/v4/letter/t/50afbb/32.png) [@Tom-L](https://forum.inductiveautomation.com/u/Tom-L)\
**Post date:** [April 1, 2026, 6:59pm UTC](https://forum.inductiveautomation.com/t/popup-rendering-behavior/114838/1 "2026-04-01T18:59:20Z")

</div>

I’m trying to overload a popup to show one of several multistate buttons. The visibile prop on each multistatebutton is initially set to false, and each has a binding with a simple expression that sets the visibility prop to true for the correct multistatebutton to show based on a param specified in the openPopup call. What I’m seeing is the rendering of multiple multistate buttons as if the popup is initializing it’s data, ignoring the visible prop for a instant on load, but then it finally shows correctly. It looks bad that it’s not a clean pop on the screen. Is this a known thing, or is there a trick to delay the view until it’s initialized, or anything like that? I tried with an xy container and also with a flex, and with mulistate buttons as well as embedded views of them, tried binding to the visible prop for xy and the display prop for flex but no luck on any of these tries. I could make 5 separate popups to avoid the behavior but if there’s an elegant way to fix it with one I would prefer it.

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [April 1, 2026, 7:12pm UTC](https://forum.inductiveautomation.com/t/popup-rendering-behavior/114838/2 "2026-04-01T19:12:59Z")

</div>

There are a couple of ways to fix this. You can wrap the expression with `coalesce()` to return a value during evaluation, or you can change the property to `persistent` so that the saved value is the default value on opening.

---

<div class="post-metadata">

**Author:** ![Tom-L](https://avatars.discourse-cdn.com/v4/letter/t/50afbb/32.png) [@Tom-L](https://forum.inductiveautomation.com/u/Tom-L)\
**Post date:** [April 1, 2026, 7:54pm UTC](https://forum.inductiveautomation.com/t/popup-rendering-behavior/114838/4 "2026-04-01T19:54:59Z")

</div>

Beautiful - setting persistent on the visible prop did the trick.(I tried the coalesce, then setting persistent on the buttons, but it was the visible prop that did it.) Thank you!

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [April 1, 2026, 7:58pm UTC](https://forum.inductiveautomation.com/t/popup-rendering-behavior/114838/5 "2026-04-01T19:58:42Z")

</div>

I should note that persistent has some caveats. You can read details on it here, [Perspective view first rendering - Ignition - Inductive Automation Forum](https://forum.inductiveautomation.com/t/perspective-view-first-rendering/111668/3)
