React-admin selectInput не показывает значение при редактировании, используя вместе с вариантами

#reactjs #react-native #react-admin

#reactjs #react-native #react-admin

Вопрос:

У меня есть поле состояния, исходящее из моего API. Оно имеет значение в диапазоне 0-3.

мой ответ выглядит следующим образом:

 { status: 0 }
  

Я могу показать значение при редактировании с помощью TextInput, оно показывает значение (в данном случае 0).

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

мой selectInput выглядит следующим образом:

           <SelectInput label="Status" source="status" choices={[
                       { id: '0', name: 'elfogadásra vár' },
                       { id: '1', name: 'aktív' },
                       { id: '2', name: 'inaktív' },
                       { id: '3', name: 'archív' },
                       ]} 
                       optionText="name" 
                       optionValue="id" 
          />
  

К сожалению, когда я сохраняю это и обновляю свою страницу, в моем статусе не отображается текущее значение (которое в данном случае равно 0, оно должно показывать мне ‘elfogadasra var’, но оно пустое)

Что я делаю не так?

Ответ №1:

Я добился этого следующим образом

 <ReferenceInput label="Country" source='country.id' reference="Country"  sort={{ field: 'name', order: 'ASC' }} alwaysOn>
   <SelectInput optionText="name" optionValue="id" allowEmpty />
</ReferenceInput>
  

Мне нужно было загрузить свои варианты из этой базы данных, хотя, однако, концепция та же … я подозреваю, что то, что вы используете для исходного кода, неверно.. Посмотрите в инструментах redux dev.. в разделе состояние -> форма -> запись-форма -> значения, и вы должны увидеть что-то вроде статуса.идентификатор, который вы должны использовать вместо источника .. у меня есть объект того же типа в моей форме country {id: 2}… но это не то, что вы используете, чтобы получить входные данные для отображения вашего существующего значения…

Ваше решение может быть таким же простым, как вызов значения diff в исходном коде, но вы узнаете, каким это должно быть, заглянув в состояние {status: 0} перед ним должно быть что-то вроде чего-то -> {status: 0}

Комментарии:

1. Не уверен, что я вас полностью понимаю… почему TextInput правильно отображает мое значение (в данном случае 0), а selectInput — нет? Оба работают из одного и того же ответа API

2. Да, но ваш текстовый ввод просто показывает 0, связанный со свойством с именем source…. у вас есть кортежи, связанные с вашим вводом select, поэтому он понятия не имеет, что делать со значением, когда вы добавляете к нему только 0 … вы смотрели в своей записи формы? возможно, вставьте информацию о значениях, полностью открытую

3. обнаружена проблема — по какой-то причине у меня был пользовательский ввод, который не позволял selectInput работать должным образом. Как только я удалил этот пользовательский ввод, мой selectInput работает нормально

Ответ №2:

Не настоящая причина, но на случай, если кто-то сталкивается с той же проблемой, стоит проверить:

Я обнаружил, что переходил initialValues к Form компоненту на create и не пропустил их в edit режиме. Вот почему он всегда сбрасывал SelectInput ‘s.