在React Native中使用某些SVG时遇到麻烦。 我有一个可单击且运行良好的图表,然后需要在图表上方放置另一个SVG,以便绘制一条表示极限得分值的线。我现在面临的问题是,由于SVG的视图位于其上方,因此我无法再单击该图表。 我将SVG的背景色设为透明,以便至少可以看到其后面的图表,但是,我不知道如何再次使其可单击。
是否有什么方法可以使图表可点击槽通过顶部的透明视图显示?
这可能是一个愚蠢的问题,但是我通常对React和JS都是陌生的,所以我真的可以使用任何类型的帮助。 :)
这是图表的图片:
在这里,同样的Svg具有不透明的背景,如您所见,几乎覆盖了整个孔图。
这是Svg代码:
export class NutritionChartSvg extends Component {
render() {
return (
<View style={styles.container} >
<Svg height={height * 0.5} width={width * 0.5} viewBox="0 0 100 100">
<Svg.Circle
id="circle"
cx="50"
cy="13"
r="40"
stroke="gray"
strokeWidth="0.6"
fill="none"
/>
<Text fill="black" fontSize="8" dy="-2">
<TextPath href="#circle" startOffset='181'>
100
</TextPath>
</Text>
</Svg>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignContent: 'center',
justifyContent: 'center' ,
position: 'absolute',
left: '25%',
height: 'auto',
width: 'auto',
},
});'
这是图表表格chartjs:
export const NutritionChart = (props) => {
return (
<Chart
chartConfiguration={
{
type: 'polarArea',
data: {
labels: ['Fiber', 'Protein', 'Healthy Oil', 'Good Energy', 'Immune
Defense'],
datasets: [
{
label: '# of Votes',
data: [
50,
140,
90,
120,
100,
],
backgroundColor: backgroundColor,
borderColor: borderColor,
borderWidth: datasets.border,
hoverBackgroundColor: hoverBackgroundColor,
},
],
},
options: {
layout: {
padding: {
top: options.layout.padding.top,
bottom: options.layout.padding.bottom,
}
},
legend: {
display: false,
fullWidth: false,
labels: {
fontSize: options.legend.labels.fontSize,
boxWidth: options.legend.labels.boxWidth,
padding: options.legend.labels.padding,
}
},
scale: {
display: false,
ticks: {
min:0,
max:200,
}
},
responsive: true,
maintainAspectRatio: false,
},
}
}
defaultFontSize={10}
/>
);
};
并且它们在视图中在一起:
<View style={styles.nutritionChart} key={3}>
<NutritionChart/>
<NutritionChartSvg/>
</View>
答案 0 :(得分:0)
要么:
pointer-events: none
。这将使点击直接通过。