реагировать на выбор очищает мое введенное значение, когда я теряю фокус или перехожу к следующему полю - PullRequest
0 голосов
/ 08 октября 2018

Так что я новичок в работе с компонентом typeahead и использую библиотеку реагировать на выбор и асинхронно выбираю предложенные параметры на основе введенных данных. Теперь давайте скажем, если я набрал "google", а теперь "google" может бытьвключено в предложенные опции или нет, и если я перейду к следующему полю формы, я потеряю значение типа "google".Должен ли я всегда нажимать на варианты?Может принять введенное значение, не нажимая на опции.Я попытался сделать это с помощью onBlur, но он очищает значение.

Ниже myCode:

// Form field using redux form
    <Field>
      name={FIELD_AUTO_COMPLETE}
      component={renderCompanyNameTypeAhead}
      text="text"
      placeHolder="Company Name"
    </Field>

И в моей функции без сохранения состояния:

    const getOptions = () => async(input) => {
        let response = await fetchApi.getOptions(input);
        let dataRepsone = await response.json();
        const arr = dataResponse.data;
             if (arr) {
                return arr.map( obj => {
                   const newObj = {};
                   newObj.label = obj.name;
                   newObj.value = obj.id;
                   return newObj;
               });
             }
          };

   const renderCompanyNameTypeAhead = (props) => {
     const getOptions = loadOptions();
     return (
            <div>
              <AysncSelect
                 {...props}
                 value={(props.input.value) ? props.input.value : props.selectedValue}
                 type={props.type}
                 label={props.label}
                 onChange={(value) => props.input.onChange(value)}
                 onBlur={() => props.onBlur(pros.input.value)}
                 loadOption={getOptions}
                />
             </div>
    )}

1 Ответ

0 голосов
/ 09 октября 2018

Я думаю, что у вас здесь больше символа (>):

<AysncSelect>

изменить на:

<AysncSelect
...