botframework - 设置 formflow 对话框字段值,以后不提示
问题描述
我SetDefine()
用来为我的机器人对话框中的一个字段提供一个值..
return builder
.Field(new FieldReflector<CarValuationDialog>(nameof(UserName))
.SetDefine(async (state, field) =>
{
field.SetValue(state, userName);
return await Task.FromResult(true);
}))
userName
只是调用该return builder
行的函数中的一个变量。该属性UserName
定义为..
public string UserName { get; set; }
我遇到的问题是,当我在模拟器中运行机器人时,我首先看到的是......
如何配置该属性UserName
,使其不会在机器人中提示输入值?
解决方案
由于您正在定义您的用户名字段并且您不希望机器人提示该字段,您可以使用 .SetActive
.Field(new FieldReflector<CarValuationDialog>(nameof(UserName))
.SetDefine(async (state, field) =>
{
field.SetValue(state, "username");
return await Task.FromResult(true);
})
.SetActive((state) => String.IsNullOrEmpty(state.UserName)))
因此,仅当该字段为 Null 或为空时才会启动提示。您可以尝试其他返回 bool 的函数以更好地匹配您的用例。
推荐阅读
- android - MySql 数据库中的阿拉伯值
- python - Elasticbeanstalk 如何授权创建负载均衡器?
- python - 使用两个“=?” 在一个子句中
- sql - 是否有可以加快 CTE 的索引?
- linux - IP2Location + Netmiko 到 SSH 到 VM 到 MTR 并打印结果(如果、elif、else 语句问题)PYTHON3
- java - 从 Firebase 中删除共享同一个孩子的多个数据 - Java
- python - Python3函数将列表映射到字典
- typescript - ionic 3 movefile函数的问题
- scala - sbt,编译编译桥
- javascript - Calculator Project for Uni - JavaScript Code not working