这是我的对象:
5494
我想访问属性“ durations”的值。
action.durations [anyIndex]返回“未定义”。
那是我整个动作的创造者(redux):
const action = {
durations: ["29 minutes", "34 minutes", "2 heures 48 minutes"],
filteredCollabs: [{…}, {…}, {…}]
}
这是我的console.log在浏览器中返回的内容:
export const searchPeople = (clientAdress, skill, collaborators) => {
const filteredCollabs = collaborators.filter(collab => collab.skills.includes(skill));
let collab;
let origin = "";
let mode = "";
let durations = [];
for (let i = 0; i < filteredCollabs.length; i++) {
collab = filteredCollabs[i];
origin = `${filteredCollabs[i].latitude},${filteredCollabs[i].longitude}`;
mode = `${filteredCollabs[i].mode}`;
axios
.get(`https://maps.googleapis.com/maps/api/distancematrix/json?origins=${origin}&destinations=${clientAdress}®ion=FR&mode=${mode}&key=${config.gmap.key}`)
.then(response => durations.push(response.data.rows[0].elements[0].duration.text))
.catch(err => console.log(err));
}
console.log("durations dans actions : ", durations);
return {
type: "SEARCH_PEOPLE",
durations,
filteredCollabs,
}
谢谢!
答案 0 :(得分:1)
您错过了持续时间对象后的逗号
const action = {
durations: ["29 minutes", "34 minutes", "2 heures 48 minutes"],
filteredPeople: []
}
获取索引结果
consol.log(action.durations[0])
答案 1 :(得分:0)
这是一个异步问题。 实际上,由于来自请求的响应不够快,因此当传递给我的reducer时,我的数组为空。 但是,在浏览器中,我可以看到最新更新的对象。 Chrome发出一个小信息图标,提醒我“下面的值刚刚被评估”。
谢谢大家的帮助!