【发布时间】:2019-07-09 00:47:10
【问题描述】:
我在 Expo 中使用 React Native,我有 4 个 SVG 元素,我需要它们可以点击。这是其中每个的代码:
<Svg.G
id="Passangers-Going-B"
onPress={() => console.log(`${cardinalPoint} Avatar Was Clicked`)}
>
...
使用该代码,我可以单击 SVG 元素,但奇怪的是,当我尝试单击另一个元素时,单击仍会触发我单击的最后一个元素的事件。
I recorded a video with the behavior
那么,有没有更好的方法来做到这一点?我只需要单击这些 SVG 元素即可更改为新路线。
有什么想法吗?
我正在使用来自 expo 的 SVG。 import { Svg } from 'expo'; -> https://docs.expo.io/versions/latest/sdk/svg/
我还创建了一个 Snack,但我认为它根本不起作用 -> https://snack.expo.io/@maketroli/expo.svg-example?session_id=snack-session-_9YKofW2Y
我看到的是,如果我点击其中一个元素,点击就会卡在那里,因为如果我点击一个新元素,它会抛出最后一个点击元素的功能。我必须点击新元素大约 3 次才能将点击集中在该元素上。
我看到了一些关于 PanResponder 的东西,但我不知道这与它有什么关系。
【问题讨论】:
-
你试过
onClick={...}而不是onPress -
嗨@Mulli,它是 React Native。所以
onPress是要走的路。 -
RN中没有onClick事件..
-
是的。刚注意到。请看facebook.github.io/react-native/docs/handling-touches我在那里看到了一些简单的例子......
-
Expo 处理 WebViews,因为帖子有 reactjs 标签,所以不那么明显。
标签: javascript reactjs react-native svg ecmascript-6