你好吗?我需要你的帮助!我一直在尝试在React-Leaflet项目中映射状态。累了,筋疲力尽。希望有人能帮到我。 这是我的状态,以及在地图上标记的操作。
this.state = {
markers: [
{
_id: 'SomeId',
position:[51.509,-0.03],
content: 'Something'}
}
]
}
{this.state.markers.map((position, _id, content) =>
<Marker
key={_id}
position={position}>
<Popup>
<span>{content}</span>
</Popup>
</Marker>
)}
无论我做什么,我都会得到
“未捕获的TypeError:无法读取null的属性'lat'”
答案 0 :(得分:0)
该错误可能是代码的其他部分生成的,因为包含的内容中没有任何对象的lat属性。
因此,为了从状态存储的对象数组中呈现标记,您应该在循环使用map时对markers数组内的对象属性进行解构,以便直接使用它们:
{this.state.markers.map(({position, _id, content}) =>
<Marker
key={_id}
position={position}
icon={customMarker}>
<Popup>
{content}
</Popup>
</Marker>)
}
答案 1 :(得分:0)
回调函数带有3个参数,第一个参数是数组中的当前条目。必须通过它访问必需的属性。
#include <stdio.h>
#include <stdlib.h>
int bintest();
int main(){
int* x = malloc(sizeof(int));
printf("value of x: %d\n",x);
printf("address of x: %d\n",&x);
printf("value at %d: %d\n", x, *x);;
printf("\n\n*****\nEnter value of x\n*****\n");
scanf("\n%d", x);
printf("value of x: %d\n",x);
printf("address of x: %d\n",&x);
printf("value at %d: %d\n", x, *x);
bintest(x);
}
int bintest(int* y){
printf("\ny: %d", *y);
}