【发布时间】:2021-08-21 20:27:15
【问题描述】:
我有一张地图,我希望在用户长按某个点时出现一个标记。 我有以下代码:
const [coords, setcoords] = React.useState(getcoord());
const [show, setShow] = React.useState(false);
const setPointCoords = (e) => {
setcoords(e.geometry.coordinates);
setShow(!show);
}
return (
<View style={style.page}>
<MapboxGL.MapView
style={style.map}
rotateEnabled={false}
styleURL="mapbox://styles/daskalgg/ckp26fbmb34iv18otkav9sj4s"
onLongPress={(e) => {
setPointCoords(e);
}}
>
{
show &&
<MapboxGL.PointAnnotation
key="marker"
id="point"
draggable={true}
coordinate={coords} />
}
</MapboxGL.MapView>
{
show &&
<Text>test</Text>
}
</View>
);
我遇到的问题是,尽管调用了 setPointCoords 并且 show 的值发生了变化,但标记从未出现。
我注意到的一些事情:
- 用于测试目的的 Text 元素按预期工作。
- 当 show 的初始值为 true 时问题就消失了。
【问题讨论】:
标签: react-native conditional-rendering