我在网络聊天中输入密码时遇到问题。我使用样本-使用密码输入卡的密码输入活动自定义网络聊天,当我输入错误的密码时会显示类似错误的密码的消息,请重试,但是当我输入密码不正确时表格我需要显示另一条消息。
我使用了这段代码。
if (card.activity.type === 'message') {
if (
card.activity.from.role === 'bot' &&
(card.activity.text === getLoginMessage(this.props.language) ||
card.activity.text === getLoginRetryMessage(this.props.language))
) {
let message = card.activity.text;
if (!this.hasSubmittedPassword && (card.activity.text === getLoginRetryMessage(this.props.language))) {
message = "Please fill the form and click enter in order to complete your request.";
}
return children => (
<ConnectedPasswordInputActivity
promptMessage={message}
passwordPlaceholder={this.props.literals.password}
language={this.props.language}
handlePasswordSubmit={this.handlePasswordSubmit}
>
{next(card)(children)}
</ConnectedPasswordInputActivity>
);
}
答案 0 :(得分:0)
这很难确定,因为您要引用很多隐藏的代码,但是我怀疑问题与您的hasSubmittedPassword
函数和对它的检查有关。
您要匹配
getLoginMessage
或getLoginRetryMessage
返回值的地方这些都通过了您的支票(基于所附图片)。
然后检查(显然)正在通过的hasSubmittedPassword
,然后再次检查getLoginRetryMessage
(???)。第二项检查是不必要的,因为如果第一项检查(if
未成功,您将不会在此card.activity.text = this.getLoginRetryMessage(this.props.language)
语句中。
这可以简化为:
if (!this.hasSubmittedPassword) {
message = "Please fill the form and click enter in order to complete your request.";
}
话虽如此,您使用if(!this.hasSubmittedPassword) {...}
只是在检查是否有返回值。此函数可能会或可能不会返回正确的值,但您的支票无关紧要。它只想知道 IF 有一个值。如果您将逻辑设置为始终返回某项内容(即,对,错,是,否,再试一次),那么它将始终通过。
据我所见,如果您的前三项检查都通过了,那么您总是会收到第二条消息。
希望有帮助!