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