0

我正在使用 Circuit SDK 通过机器人发送表单进行对话。其中包含几个按钮:

client.addTextItem(item.convId, {
            content: 'Form test',
            form: {
              id: 'form123',
              title: 'Form test',
              controls: [{
                type: 'BUTTON',
                name: 'fruit',
                options: [{
                  text: 'Apple',
                  value: '1'
                }, {
                  text: 'Banana asd asd asd asdsa das asd',
                  value: '2'
                }, {
                  text: "Strawberry",
                  value: '3'
                }]
              }]
        }});

我订阅了 formSubmission 事件来接收用户的选择:

client.addEventListener('formSubmission', function (event) {
            var formData = event.form;
            console.log(event);
            console.log(formData);
        });

当我单击与机器人对话的按钮之一时,事件将按我的意愿处理:

{ type: 'formSubmission',
  itemId: '44469462-6d79-49ac-8439-3a1a57a9d6d2',
  form: { id: 'form123', data: [ [Object] ] },
  submitterId: '81cb8c4d-2706-4c03-8d82-20081b9399e4' }
{ id: 'form123', data: [ { name: 'fruit', value: '1' } ] }

但是出现“提交表单时出错”。Circuit UI 顶部的通知。为什么用户收到此消息?

4

1 回答 1

0

这是一个错误。我们正在调查它。作为一种解决方法,您可以通过在用户单击按钮后定义自己的通知来覆盖错误,如下所示:

client.addTextItem(item.convId, {
        content: 'Form test',
        form: {
          id: 'form123',
          title: 'Form test',
          controls: [{
            type: 'BUTTON',
            name: 'fruit',
            options: [{
              text: 'Apple',
              value: '1',
              notification: "Form submitted"
            }, {
              text: 'Banana asd asd asd asdsa das asd',
              value: '2',
              notification: "Form submitted"
            }, {
              text: "Strawberry",
              value: '3',
              notification: "Form submitted"
            }]
          }]
    }});

每个按钮都可以有自己的通知文本。

我将用估计的修复日期更新这个 stackoverflow 问题。

于 2019-09-09T12:27:16.560 回答