Office UI Fabric - PeoplePicker: не удается заставить createGenericItem работать - PullRequest
0 голосов
/ 25 января 2019

Возможно, это просто недоразумение с моей стороны, но я подумал, что обратный вызов для createGenericItem в PeoplePicker (https://developer.microsoft.com/en-us/fabric#/components/peoplepicker) был использован для обработки ввода, который не может быть сопоставлен ни с одним из доступных элементов, а затем для этого можно создать элемент adhoc, но, что бы я ни пытался, обратный вызов никогда не вызывается.

Я сделал простую ручку для выпуска: https://codepen.io/anon/pen/daGPWe?editors=0010

В примере есть два предмета: Петр и Мария. Если вы введете что-то другое (и нажмете Enter, Tab, пробел и т. Д.), Я ожидаю, что будет вызван обратный вызов createGenericItem, но это не так.

Что я делаю не так? Или есть неправильное понимание цели этого обратного вызова? Я нигде не могу найти пример.

1 Ответ

0 голосов
/ 29 января 2019

Относительно

, но я подумал, что обратный вызов для createGenericItem в PeoplePicker (https://developer.microsoft.com/en-us/fabric#/components/peoplepicker) использовался для обработки ввода

, это правильно. триггер IBasePickerProps.createGenericItem функция, IBasePickerProps.onValidateInput функция должна быть снабжена ValidationState.valid в качестве возвращаемого значения, например:

<NormalPeoplePicker
      createGenericItem={this.createGenericItem}
      onValidateInput={this.handleValidateInput}
      selectedItems={this.state.selectedItems}
      onResolveSuggestions={this.handleResolveSuggestions}
      onChange={this.handleChange}
/>


private handleValidateInput(input: string) {
   return ValidationState.valid;
}

private createGenericItem(input: string, validationState: ValidationState) {
   return { text: "Unknown person",  state: validationState };
}

Эта демонстрация демонстрируетпосле нажатия клавиши tab или enter значение не может быть разрешено ни для одного из доступных элементов, элемент Unknown person отображается

...