javascript - 我是否错误地使用了 PromptOptions?
问题描述
我正在尝试ChoicePrompt
为我的聊天机器人创建一个,但由于某种原因我无法导入PromptOptions
界面。当我尝试将其包含在botbuilder-dialogs
导入中时:
const { DialogSet, WaterfallDialog, ChoicePrompt, WaterfallStepContext, PromptOptions } = require('botbuilder-dialogs');
VS Code 不将其识别为包的一部分,并在创建提示时尝试使用它WaterfallStepContext
:
async (step = new WaterfallStepContext()) => {
const semOptions = ["Fall", "Winter", "Summer"];
options = new PromptOptions({
prompt: `What semester are you currently in, ${this.name}?`,
choices: semOptions
});
return await step.prompt("semPrompt", options);
}
我收到一个未处理的错误:
TypeError: PromptOptions is not a constructor
我多次重新安装了最新版本的botbuilder-dialog
软件包,但无济于事。谁能提供任何关于我可能做错了什么的见解?
解决方案
PromptOptions是一个界面,其中包含您在提示中传递的可配置选项。您不需要通过新的 PromptOptions 来“构建”它。
Wrt您提出问题,您可以执行以下操作:
添加“ChoiceFactory”实用程序
const { WaterfallDialog, ChoiceFactory, ChoiceFactory, ConfirmPrompt, TextPrompt } = require('botbuilder-dialogs');
在对话框构造函数中,添加提示并将其添加到 dialogSet:
this.addDialog(new ChoicePrompt(CHOICE_PROMPT_NAME));
在您的对话步骤中,您调用提示并传递选项
async Step(stepContext) {
const SEMOPTIONS = ['Fall', 'Winter', 'Summer'];
return await stepContext.prompt(CHOICE_PROMPT_NAME, {
prompt: `What semester are you currently in, ${this.name}?`,
retryPrompt: 'Please select one of the options',
choices: ChoiceFactory.toChoices(SEMOPTIONS),
style: 5
});
}
顺便说一句:您似乎在 Javascript 代码中使用 C# / Python 类。JS 的 SDK 文档位于此处:
推荐阅读
- python - Python 进程间同步原语
- c++ - 如何在 QT/C++ 中创建一个自定义组合框模型来显示项目并让我选择项目作为有问题的类而不是字符串?
- libgdx - 无法仅更改一个 textArea 的字体大小
- python - Tkinter 按钮仅在单击左键时才会下沉
- java - 在命令行中编译和运行 JUnit
- laravel - 迁移到 Laravel Mix v6 和 Vue 3 时,手表编译时间严重增加
- javascript - d3.js:分组条形图中的选择器下拉选择错误的图表
- javascript - 如何将标签的内部 html 更改为用户名?
- javascript - 将传统的 jQuery 链接平滑滚动方法转换为 vanilla javascript
- python - 如何在发送数据包之前对其进行编辑