Javascript 从对象内部的数组中获取值
我有一个object,在他的组数组中,我试图从数组的元素中获取一些值,但总是得到错误。当我使用console.log(country.geoPosition)时,我可以看到数据,但无法访问为什么???我从获取数据创建对象Javascript 从对象内部的数组中获取值,javascript,reactjs,Javascript,Reactjs,我有一个object,在他的组数组中,我试图从数组的元素中获取一些值,但总是得到错误。当我使用console.log(country.geoPosition)时,我可以看到数据,但无法访问为什么???我从获取数据创建对象 const [country, setCountry] = useState([{ item01:[], cityName:[], stateName:[], timeZone:[{ Code: "", GmtOffse
const [country, setCountry] = useState([{
item01:[],
cityName:[],
stateName:[],
timeZone:[{
Code: "",
GmtOffset : ""
}],
geoPosition: [{
latitude: "",
longitude: ""
}]
}]);
setCountry(
{
item01:[data[0]],
cityName:[data[0].EnglishName],
stateName:[data[0].Country.EnglishName],
timeZone:[{
Code: data[0].TimeZone.Code,
GmtOffset : data[0].TimeZone.GmtOffset
}],
geoPosition:[{
latitude : data[0].GeoPosition.Latitude,
longitude : data[0].GeoPosition.Longitude
}]
});
}
我尝试了console.log(country.geoPosition.latitude)并得到了错误,但是如果我尝试了console.log(country.geoPosition)代码,并且我看到了值,那么您缺少索引,请尝试
country.geoPosition[0].latitude
或者更改代码的结构,使地理位置
是一个对象而不是数组
geoPosition: {
latitude: "",
longitude: ""
}
希望这对您将地理位置创建为阵列有所帮助
geoPosition: [{
latitude: "",
longitude: ""
}]
要访问纬度,您必须使用country.geoPosition[0]。latitude
如果您的地理位置只有一个纬度和长度,请按以下方式更改您所在州的地理位置
geoPosition: {
latitude: "",
longitude: ""
}
上述代码中的方括号被删除。当您最初设置国家/地区状态时,它是数组中的一个对象:
useState([{
但是从您的描述中,我认为您需要useState({
。您正在从数组切换到obejct([]在useState,{}在setCountry)。您也不应在每次渲染时将道具复制到您的状态。如果这样做,您可以完全跳过该状态,只需使用道具即可。此外,地理位置是一个数组,因此要访问它,请键入:country.geoPosition[0]。lation或删除[]地理位置周围的括号。我必须在状态中使用道具,因为在键入和点击按钮后,道具必须更新…我从useState中删除了括号,现在可以工作了,这就是问题:)