为了账号安全,请及时绑定邮箱和手机立即绑定

如何循环并返回 javascript 对象的值?

如何循环并返回 javascript 对象的值?

喵喵时光机 2023-06-29 21:15:55
(如果我的某些条款不正确,请道歉)在 Firebase 中我有很多帖子。每个帖子都有一个“纬度”字段和一个“经度”字段。我将它们取出并将它们存储在名为 mapRefs 的数组/对象中:useEffect(() => {    projectFirestore.collection("posts").get().then(res => {        let mapRefs = [];        res.forEach(data => {            mapRefs.push([data.data().myLatitude, data.data().myLongitude]);            });        console.log(mapRefs);        });}, []);这有效,控制台日志的输出是:0: (2) [-8.6848548, 115.22303799999999]1: (2) [-8.7848548, 115.323038]2: (2) [-8.9848548, 115.52303799999999]3: (2) [-8.8848548, 115.42303799999999]然后我如何迭代这些并将纬度和经度值映射到组件。我正在尝试这样:<ReactMapGL>    { mapRefs && mapRefs.map(coord => (        <Marker latitude={coord[0]} longitude={coord[1]}>            <div>                ...            </div>        </Marker>    ))}</ReactMapGL>这不起作用。请问这样做的正确方法是什么?
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

您需要使用状态值来呈现 UI 元素,并且mapRefs在外部不可用useEffect

尝试这样

const [mapRefs, setMapRefs] = useState([])


useEffect(() => {

    projectFirestore.collection("posts").get().then(res => {

       let refs = [];

       res.forEach(data => {

          refs.push([data.data().myLatitude, data.data().myLongitude]);    

       });

       setMapRefs(refs)

    });

}, []);


return (

  <ReactMapGL>

    { mapRefs.map(coord => (

        <Marker latitude={coord[0]} longitude={coord[1]}>

            <div>

                ...

            </div>

        </Marker>

    ))}

</ReactMapGL>

)


查看完整回答
反对 回复 2023-06-29
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信