# Navigate action triggers twice

**URL:** <https://forum.inductiveautomation.com/t/navigate-action-triggers-twice/112228>\
**Category:** Ignition\
**Tags:** ignition83, perspective\
**Created:** [November 17, 2025, 11:57am UTC](https://forum.inductiveautomation.com/t/navigate-action-triggers-twice/112228 "2025-11-17T11:57:30Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mmadariaga](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mmadariaga/32/63201_2.png) [@mmadariaga](https://forum.inductiveautomation.com/u/mmadariaga)\
**Post date:** [November 17, 2025, 11:57am UTC](https://forum.inductiveautomation.com/t/navigate-action-triggers-twice/112228/1 "2025-11-17T11:57:30Z")

</div>

I've got a table with an onRowDoubleClick action with the following function:

```python
def runAction(self, event):
	system.perspective.navigate('op/' + str(self.view.custom.table.selected_data[0].id_review) + '/a')

```

When the new view opens, I use the id\_review param to load up the data to be displayed. The problem is that this binding is running twice. I put a print on it and the id\_review is the same both times. Why is it sent twice? I tried to create a new empty view and it's still happening.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/a/1ac6a04d34f7c4821afafc91243923d54e9a80c8.png)

This print is triggered twice after double clicking the row.

---

<div class="post-metadata">

**Author:** ![Lina\_Wright](https://avatars.discourse-cdn.com/v4/letter/l/22d042/32.png) [@Lina\_Wright](https://forum.inductiveautomation.com/u/Lina_Wright)\
**Post date:** [November 26, 2025, 6:50pm UTC](https://forum.inductiveautomation.com/t/navigate-action-triggers-twice/112228/2 "2025-11-26T18:50:24Z")

</div>

Thank you for sharing the details regarding the script executing twice when navigating to the new view. I looked into this, and here’s what may be happening:

**Possible Reason:**  
In Perspective, bindings and script transforms can execute multiple times during view initialization. Specifically:

1. **Initial evaluation:** When the view is first created, all bindings are evaluated, sometimes with default or empty values.

2. **Render pass:** Once the view is fully initialized and visible, bindings are evaluated again with the correct navigation parameters.

**Possible Workaround:**  
I moved the logic from the binding transform script to the **View** → **Events → onStartup** script, and now it only prints once. This might be a workaround to prevent the script from running twice.

 ![Screenshot 2025-11-18 at 1.45.22 PM](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/0/50bcf2e063b4cb749a381e13118f1c438c4b0ae5.jpeg)

---

<div class="post-metadata">

**Author:** ![mmadariaga](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mmadariaga/32/63201_2.png) [@mmadariaga](https://forum.inductiveautomation.com/u/mmadariaga)\
**Post date:** [December 3, 2025, 8:57am UTC](https://forum.inductiveautomation.com/t/navigate-action-triggers-twice/112228/3 "2025-12-03T08:57:18Z")

</div>

Thanks for the reply. I ended up adding a change script to evaluate if the change was intented or not. I also tried the onStartup event but it didn't fit my needs.
