Я пытаюсь убедиться, что мои пункты меню смонтированы в DOM для целей SEO. Я использую компонент MUI Select для выпадающего меню и передаю keepMounted
реквизиты, которые в конечном итоге распространяются на компонент Popper через MenuProps
.
Я вижу элементы меню HTML (ul> li), смонтированные в моем инспекторе, но когда я проверяю источник или CURL, их не существует.
const TopicSelect = ({
classes,
width,
selectClassName,
topicData,
selectedValue,
onChange,
}) => {
const isMobile = isWidthDown('xs', width)
return (
<FormControl data-testid="TopicSelect-formControl" variant="filled">
<InputLabel className={classes.label} htmlFor="topic-select-input">
Filter by topic
</InputLabel>
<Select
data-testid="TopicSelect-select"
className={classnames(classes.select, selectClassName)}
onChange={onChange}
value={selectedValue}
autoWidth
native={isWidthDown('xs', width) ? true : false}
input={
<FilledInput
name="topic"
id="topic-select-input"
className={classes.filledInput}
disableUnderline
/>
}
MenuProps={{
style: {
zIndex: 1500,
},
keepMounted: true,
}}
>
{isMobile
? [
<option value="" />,
topicData.map(topic => (
<option
key={`${topic.text}-LearnNav-menuItem`}
value={topic.path}
>
{topic.text}
</option>
)),
]
: [
<MenuItem key="none" value="">
<em>None</em>
</MenuItem>,
topicData.map(topic => (
<MenuItem
key={`${topic.text}-LearnNav-menuItem`}
value={topic.path}
>
{topic.text}
</MenuItem>
)),
]}
</Select>
</FormControl>
)
}
Я ожидаю, что элементы меню HTML будут отображаться в DOM, потому что это то, для чего предназначен этот объект. Не уверен, почему они не отображаются во время SSR.
Кто-нибудь сталкивался с этой проблемой раньше? Есть ли способ убедиться, что эти элементы смонтированы, и я их пропускаю?