You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Taipy页面点击跳转后实现页面间信息交互

实现页面跳转时的变量传递与内容更新

问题背景

在main.py中定义了页面路由及全局变量:

pages = {
    "/": root_md,
    "Page-MAP": page1_md,
    "Page-DASHBOARD": page2_md,
}

variable_main = "station1"

需求为点击Page-MAP页面跳转至Page-DASHBOARD时,传递变量并更新后者的station_name内容。当前点击事件仅修改页面局部变量,无法同步到目标页面。

解决步骤

1. 改用全局state存储共享变量

原代码中state['Page-MAP'].variable_main是页面局部变量,仅作用于Page-MAP,需改为全局state存储以实现跨页面访问。修改Page-MAP的点击事件函数:

def on_change(state, var_name, var_value):
    # 将变量赋值到全局state,而非页面局部
    state.variable_main = "station 2"
    navigate(state, to='Page-DASHBOARD')

2. 初始化全局state变量

在main.py中添加全局变量初始化逻辑,确保应用启动时变量被加载到state:

# 初始化全局state变量
def init_state(state):
    state.variable_main = "station1"

(根据框架特性,将该初始化函数绑定到应用启动钩子即可)

3. 修改Page-DASHBOARD页面绑定全局变量

将页面中的station_name直接绑定到全局state.variable_main,修改页面代码:

<|toggle|theme|>
<|layout|columns=1 2 2 2|gap=40px|class_name=card|
<|{image_path}|image|>
### Name: **<|{state.variable_main}|text|raw|>**{: .color-primary}
|>

如果需要保留station_name变量,可在页面代码块中定义:

station_name = state.variable_main

之后继续使用原有的<|{station_name}|text|raw|>即可。

原理说明

通过全局state存储共享变量,替代页面局部变量,实现跨页面的数据同步。跳转时修改全局state的值,目标页面绑定该变量后会自动触发内容更新。

内容的提问来源于stack exchange,提问作者Jérémie Marchand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 01:20:00