как сохранить пользовательское состояние в боте v4, чтобы оно оставалось постоянным на протяжении всего разговора - PullRequest
1 голос
/ 10 февраля 2020

Я использую приведенный ниже код для сохранения состояния пользователя. Он сохраняется в космосе, но, хотя я пытаюсь получить его в следующем ходу, он дает нулевое значение. Есть ли способ сделать его постоянным для всего разговора.

 private IStatePropertyAccessor<ChatState> _maindialogState; 
_maindialogState = userState.CreateProperty<ChatState>(nameof(ChatState));

var _statemain = await _maindialogState.GetAsync(stepContext.Context, () => new ChatState());
_statemain.Email = "XXXXXX";
_statemain.DisplayName = "Ankit";
await _maindialogState.SetAsync(stepContext.Context, _statemain, cancellationToken);

1 Ответ

1 голос
/ 10 февраля 2020

Похоже, вы на самом деле не сохраняете состояние в приведенном выше коде, а только устанавливаете значение. В nodejs синтаксис будет

await this.conversationState.saveChanges(context);
await this.userState.saveChanges(context);

Я не уверен, что вы назвали пользователем или состоянием разговора. Вы хотите использовать эту переменную, а не средство доступа к состоянию (которое выглядит как _maindialogState) или переменную состояния (которая выглядит как _statemain).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...