使用View响应时遇报错:模态框中input块需定义submit
解决Slack模态框input块报错:must define
submit to use an input block in modals 问题原因
Slack的模态框(modal view)有强制规则:只要视图里包含input类型的交互块,就必须在视图的根层级配置submit属性(也就是提交按钮)。这个报错就是当前view结构里缺少了这个必填配置,大概率是最近调整view时不小心删掉了,或是Slack API规则更新后触发了校验。
修复步骤
- 补全submit配置:在你的view JSON最外层(和
blocks同级)添加submit字段,格式要符合Slack要求,示例如下:
{ "type": "modal", "callback_id": "your_modal_callback", "title": { "type": "plain_text", "text": "示例模态框" }, "submit": { "type": "plain_text", "text": "提交" }, "blocks": [ { "type": "input", "block_id": "user_input_block", "element": { "type": "plain_text_input", "action_id": "user_input_action" }, "label": { "type": "plain_text", "text": "请输入内容" } } ] }
- 排查配置层级错误:如果之前本来有submit配置,检查是不是误把它放到了
blocks数组里面,或是submit的文本类型用错了(必须是plain_text,不能用mrkdwn)。 - 核对API版本:确认你调用的Slack API版本是否有更新,部分新版本对模态框的必填项校验更严格,需要同步调整视图结构适配规则。
额外提醒
如果你的模态框只是用来展示信息、不需要用户输入提交,那就别用input块,换成section这类纯展示型的块;如果确实需要收集用户输入,就必须保留submit按钮,这是Slack API的硬性要求。
内容的提问来源于stack exchange,提问作者Krrishv
相关产品推荐
相关产品推荐

