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

如何在Plotly Dash中跨页面访问dcc.Store的值?

解决Dash跨页面访问dcc.Store的报错问题

报错原因

你遇到的错误是因为dcc.Store组件的正确数据属性是data,而非value,误用value会触发组件不支持该属性的报错。

解决步骤

  1. 修正数据写入逻辑(page1.py)
    在向getComm存储数据的回调中,将输出目标改为data属性,示例:

    @callback(
        Output('getComm', 'data'),
        Input('page1-trigger', 'n_clicks'),
        State('page1-input', 'value'),
        prevent_initial_call=True
    )
    def save_to_store(n_clicks, input_val):
        return input_val  # 将需要跨页面共享的数据存入data
    
  2. 修正数据读取逻辑(page2.py)
    在读取存储数据的回调中,将输入属性改为data,示例:

    @callback(
        Output('page2-display', 'children'),
        Input('getComm', 'data')
    )
    def load_from_store(stored_data):
        if not stored_data:
            return "未获取到跨页面数据"
        return f"跨页面共享数据:{stored_data}"
    
  3. 确保dcc.Store处于全局布局
    你的index文件中已添加dcc.Store(id='getComm'),需保证它位于所有页面都能访问的全局层级(比如app.layout的最外层容器内),这样多页面的回调才能正常访问到这个存储组件。

额外注意事项

  • Dash 2.x及后续版本中,dcc.Store统一使用data属性存储和读取数据,不存在value属性;
  • 跨页面共享数据时,只要dcc.Store在全局布局中,不同页面的回调就能通过组件ID直接访问其data属性,无需额外配置跨页路由。

内容的提问来源于stack exchange,提问作者optimistic-orange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:52:08