#javascript #json #reactjs #material-ui
Вопрос:
Я хочу назначить каждому тегу ключ объекта с помощью цикла, чтобы при нажатии на элемент я переходил к его содержимому в . Я попытался использовать map (), но я сомневаюсь, что это правильная методология, так как она не работает. Я начинаю с react. Так что любая помощь будет мне действительно полезна.
Вот код! Спасибо!
<Tabs
orientation="vertical"
variant="scrollable"
value={value}
onChange={handleChange}
aria-label="Vertical tabs example"
className={classes.tabs}
>
apiData.map((data, i)=> {
<Tab label=`Item ${i}` key={i} {...a11yProps(i)} />
})
</Tabs>
apiData.map((data, i)=> return <TabPanel value={value} key={i} index={i}> data </TabPanel>
})
Комментарии:
1. что такое
a11yProps
. Это функция или объект? Если это функция, что вы возвращаете.2. Вы пропустили
return
во вкладке итератор. Вот,apiData.map((data, i)=> {<Tab label=`Item ${i}` key={i} {...a11yProps(i)} /> })
измените его на{apiData.map((data, i) => { return <Tab label={data} {...a11yProps(i)} />;})}
Ответ №1:
Когда вы используете код javascript внутри JSX, вам нужно вложить его внутрь { }
.
При использовании { }
в теле функции стрелки вам необходимо использовать return
оператор для возврата данных. Если у вас нет { }
и есть однострочный оператор, возвращается оператор oneline.
<Tabs
orientation="vertical"
variant="scrollable"
value={value}
onChange={handleChange}
aria-label="Vertical tabs example"
className={classes.tabs}
>
{apiData.map((data, i) => {
return <Tab label={data} {...a11yProps(i)} />;
})}
</Tabs>
{
apiData.map((data, i) => {
return (
<TabPanel value={value} key={i} index={i}>
{data}
</TabPanel>
);
})
}