javascript - 在反应中围绕地图制作包装器功能
问题描述
我正在尝试在我的map
函数中添加一个参数以做出反应。但是在我将它包装在另一个函数中之后,返回值变为空(至少在我使用 调试时console.log(marker(NATURAL_EVENT_WILDFIRE) == null)
)。
const markers = eventData.map((ev, index) => {
if(ev.categories[0].id === NATURAL_EVENT_WILDFIRE) {
return <LocationMarker key={index} lat={ev.geometries[0].coordinates[1]} lng={ev.geometries[0].coordinates[0]} onClick={() => setLocationInfo({ id: ev.id, title: ev.title })} />
}
return null
})
我想把上面的函数变成下面这样,我可以将 id 指定为变量。
function marker(idx) {eventData.map((ev, index) => {
if(ev.categories[0].id === idx) {
console.log(ev);
return <LocationMarker key = {index} lat={ev.geometries[0].coordinates[1]} lng={ev.geometries[0].coordinates[0]} onClick={() => {
setLocationInfo({ id: ev.id, title: ev.title });
//support for toggle away info box
setInfoBox(!infoBox);
}} />
}
return null
})}
该元素部署为:
{markers} //no problem
{marker(NATURAL_EVENT_WILDFIRE)} //doesn't render
您可以在此处查看代码库
解决方案
您省略了在函数中添加return
语句marker
您应该添加marker
到函数或将marker
函数转换为箭头一。
一般功能
function marker(idx) {
return eventData.map((ev, index) => {
if(ev.categories[0].id === idx) {
console.log(ev);
return <LocationMarker key = {index} lat={ev.geometries[0].coordinates[1]} lng={ev.geometries[0].coordinates[0]} onClick={() => {
setLocationInfo({ id: ev.id, title: ev.title });
//support for toggle away info box
setInfoBox(!infoBox);
}} />
}
return null
})
}
箭头功能
const marker = (idx) => eventData.map((ev, index) => {
if(ev.categories[0].id === idx) {
console.log(ev);
return <LocationMarker key = {index} lat={ev.geometries[0].coordinates[1]} lng={ev.geometries[0].coordinates[0]} onClick={() => {
setLocationInfo({ id: ev.id, title: ev.title });
//support for toggle away info box
setInfoBox(!infoBox);
}} />
}
return null
});
推荐阅读
- macos - 如何安装 Finder Sync Extension 以使其与 Finder 持久集成?
- postgresql - Postgres 读取已提交不会重新读取更新的行
- awk - 将当前记录的字段与变量内的字段进行比较
- java - Java 使用 Files.move 将文件从一个目录移动到另一个目录
- c - 为什么使用并行处理生成随机数会产生不同的结果,即使它们具有相同的种子?
- mysql - php artisan migrate:fresh --seed 无法将表播种到 MySQL
- python - 使用 itertools 迭代具有不同大小的嵌套列表组合的列表
- python - 为什么我在使用 Python3 进行编码时出现无效语法错误?
- sql - 如何添加一个约束来停止具有两个相同值的列仅针对 Postgres 中的某些指定值?
- pandas - How to reformat Panda to_period('W-MON') and have correct date?