Это фактически map
ошибка, использованная методом.
Параметры, передаваемые в функцию в map
, присутствуют item
, index
, array
в порядке. В вашем случае countries.map((code, name, index) => {...})
, code
представляют отдельный элемент в массиве данных, например {code: "AD", name: "Andorra"}
, name
представляют индекс массива данных, index
представляют сам массив данных. Вы получили ту же самую ключевую ошибку, потому что они имеют одно и то же значение - массив данных.
Итак, правильный способ написания функции карты в вашей цели должен быть следующим:
countries.map(({ code, name }, index) => (
<MenuItem key={index} value={code}>
{name}
</MenuItem>
))
Весь файл должен быть таким, как показано ниже:
import React from "react";
import FormControl from "@material-ui/core/FormControl";
import InputLabel from "@material-ui/core/InputLabel";
import Select from "@material-ui/core/Select";
import MenuItem from "@material-ui/core/MenuItem";
import countries from "./data";
const simpleCountrySelect = props => {
return (
<>
<FormControl>
<InputLabel id="countrySelectLabel">Country</InputLabel>
<Select labelId="countrySelectLabel" id="countrySelect" value=''>
{countries.map(({code, name}, index) => (
<MenuItem key={index} value={code}>
{name}
</MenuItem>
))}
</Select>
</FormControl>
</>
);
};
export default simpleCountrySelect;