botframework - botbuilder DialogTestClient 的 sendActivity 只接受字符串而不接受数字
问题描述
我正在使用 botbuilder DialogTestClient 的 sendActivity 方法在测试时向我的机器人发送提示,但该方法只接受字符串类型,并且在我的机器人中我使用数字提示来提示用户输入数字。您对我如何解决这个问题有任何想法吗?
提前致谢
解决方案
我有点不清楚您是否仅针对 DialogTestClient 或所有客户端遇到此问题,但在 nodejs 中,您可以使用Number(promptInput)
. 如果 promptInput 已经是一个数字,它仍然可以正常工作。我假设 C# 中有类似的功能。
编辑:一些额外的上下文。您可以查看多轮提示示例中的userProfileDialog.js作为示例。本质上,NumberPrompt 在识别器中有一个“成功”属性,可确保您输入了一个数字。您可以在验证器函数中使用它以及您想要的任何验证。如果成功并通过验证,则会将一个数字而不是字符串传递到对话框的下一步。
如果在您尝试向用户重复提示值时出现错误,则需要将其转换为字符串。我喜欢为此使用反引号(模板字符串/文字),例如
await step.context.sendActivity(`You entered ${step.result}`);
step.result
numberPrompt 结果在哪里。
推荐阅读
- reactjs - 如何在没有 redux 和 context API 的情况下在不同的 3 级反应组件中传递参数?
- c++11 - 尝试检查 cin.get() 是否将行尾字符留在流中
- django - 如何在函数列表视图中访问 object.pk 而不必使用 for 循环遍历对象?
- sql - SQL 查询 - 填充列取决于
- apache-kafka - 无法启动 Kafka Connect:获取主题元数据时超时
- c# - G1ANT - 在 C# 宏中处理非托管代码
- javascript - Angular 8:将事件从一个组件发送到兄弟组件
- xgboost - AWS-Sagemaker 中的 XGBoost 模型失败且没有错误消息
- transactions - 我如何知道交易代码是否成功?
- c - 为什么“K”个数的输出多于输入字符?