#reactjs #typescript #drop-down-menu #material-ui
#reactjs #typescript #выпадающее меню #материал-пользовательский интерфейс
Вопрос:
Мне было интересно, как сделать мою таблицу с выпадающим меню со значением по умолчанию, выбранным на основе выбранных данных.
Я хочу, чтобы моя таблица выглядела так.
Вот мой код для этих конкретных ячеек
const { batchData, defaultVals } = useBatchData(updateObj);
return (
...
{batchData.map((item: IImportItem, index) => {
return (<React.Fragment key={index}>
<TableCell align='center'>
<Select
defaultValue={defaultVals [index]}
>
<MenuItem value="">
<em>None</em>
</MenuItem>
<MenuItem value={"val1"}>Val1</MenuItem>
<MenuItem value={"val2"}>Val2</MenuItem>
</Select>
</TableCell>
...
Итак, я получаю данные и использую useState из react для обновления массива defaultVals, но я не могу понять, как его настроить, чтобы при загрузке и получении данных выпадающий список обновлялся.
If был установлен с самого начала следующим образом
const defaultVals : string[] = ["val1","val1","val1","val2]
Я знаю, что это работает, и мой массив в конечном итоге выглядит так, но для получения данных требуется несколько секунд, поэтому мой вопрос заключается в том, как я могу обновить и / или повторно отобразить выпадающие меню со значениями по умолчанию, как только я их получу.
Я надеюсь, что это очищается и спасибо за помощь.
Комментарии:
1. В конце концов, вы можете рассмотреть возможность установки
defaultVals
значения [] и рендеринга<TableCell />
только тогда, когдаdefaultVals
оно не является пустым. Таким образом, вы избежите раздражающего повторного рендеринга или обновления.2. Да!! Я даже не думал о кондициональном рендеринге. Спасибо, это было именно то, что мне было нужно. Очень признателен
3. На самом деле мне все еще нужно обновить всю страницу, потому что, если некоторые другие данные обновляются, автоматически выбранные параметры не синхронизируются с остальными данными