Я разработал компонент фильтра для своего приложения, который позволяет пользователю выбирать метод фильтрации по списку элементов из раскрывающегося списка. Варианты раскрывающегося списка варьируются от текста, даты и раскрывающегося списка и отображают только выбранный метод фильтрации.
У меня есть выражение JSX, которое позволяет мне переключаться между различными компонентами на основе метода фильтрации. Параметры text
и date
работают нормально, но методы фильтра dropdown
не работают, когда они находятся внутри выражения JSX (и только внутри него). Вот код для опции выпадающего фильтра, называемой Priority:
<select value={priority} onChange={onChange} name="priority">
<option value="" disabled>
Filter...
</option>
<option value="low">by Low Priority</option>
<option value="norm">by Normal Priority</option>
<option value="high">by High Priority</option>
</select>
<label htmlFor="priority">Filtering by Priority Level</label>
Условное форматирование следует этому формату:
{ filterType === 'name' ? (
// Name filter input code
) : filterType === 'date' ? (
// Date filter input code
) : filterType === 'priority' ? (
<Fragment>
<select value={priority} onChange={onChange} name="priority">
<option value="" disabled>
Filter...
</option>
<option value="low">by Low Priority</option>
<option value="norm">by Normal Priority</option>
<option value="high">by High Priority</option>
</select>
<label htmlFor="priority">Filtering by Priority Level</label>
</Fragment>
) : filterType === 'location' && (
// Location filter input code
)}
Опять же, фрагмент кода dropdown
отлично работает за пределами выражение JSX, но ломается при добавлении в выражение JSX выше.
EDIT: забыл включить Fragment
родительские элементы, необходимые для выражений JSX. Проблема все еще сохраняется с включенными родительскими элементами.