Callbacks require their Inputs, States, and Output to be present in the layout
回调要求其输入,状态和输出出现在布局中
默认情况下,Dash将验证应用于您的回调,这将执行检查,例如验证回调参数的类型以及检查指定的Input和Output组件是否实际上具有指定的属性。为了进行全面验证,因此回调中的所有组件都必须出现在应用程序的初始布局中,否则,您将看到错误。
但是,对于涉及动态修改布局的更复杂的Dash应用程序(例如多页应用程序multi-page apps),并不是出现在回调中的每个组件都将包含在初始布局中。 您可以通过禁用回调验证来消除此限制,如下所示:
app.config.suppress_callback_exceptions = True
意思就是,不是所有的组件都在加载页面元素的时候显示出来了,这个时候写callback的时候,Dash会验证,要求所有callback中的组件都要存在于当前页面中。(有些动态组件可能需要经过一段时间才能显示),所以就设置为不让Dash验证,亲测有效。