在我的模态视图中,我有两个datePicker
元素。我知道每次交互后都会发送带有操作信息的有效负载,但是是否可以在表单提交后传递所有选定的值?我只提出了解决方案,在每次交互后,选定的值都缓存在服务器端并绑定到view_id
.
3 回答
对于像我一样偶然发现这一点的人,上面的答案不再是最新的,因为现在 slack 允许输入块调度块动作。使用private_metadata的方法在某些场景中仍然适用,但仅接收块操作会使生活变得更轻松。
只需在定义特定输入块时将“dispatch_action”设置为 true,以便在更新时接收有效负载。
用户提交后,您仍然可以访问输入数据的所有值
您好,您可以通过将交互组件放置在输入块类型中来实现此目的。Slack 文档说。
输入块中使用的任何交互式组件都不会发送此 block_actions 有效负载。它们仅包含在 view_submission 有效负载中。
https://api.slack.com/reference/interaction-payloads/block-actions
我在块套件中创建的一个示例
如果您不需要接收block_actions
事件,请使用input
GJoshi 建议的块。
但是,如果您确实需要这些block_actions
事件,则不能使用input
块(根据https://api.slack.com/surfaces/modals/using#interactions)。在这种情况下,您可以通过views.update调用将值添加到private_metadata字段。当用户单击提交按钮时,view_submission事件负载将包含该字段。private_metadata