【发布时间】:2019-03-15 14:39:05
【问题描述】:
按下按钮以获取 svg 的 base64 字符串 ...产生以下错误: - 只有创建视图层次结构的原始线程才能接触其视图
render() {
return (
<ScrollView contentContainerStyle={styles.container}>
<Svg
ref={c => (this.svg = c)}
height="50%"
width="50%"
viewBox="0 0 100 100"
>
<Circle
cx="50"
cy="50"
r="45"
stroke="blue"
strokeWidth="2.5"
fill="green"
/>
</Svg>
<TouchableOpacity
onPress={() => {
this.svg.toDataURL(data => {
console.log("data", data);
});
}}
>
<Text>Get Data</Text>
</TouchableOpacity>
</ScrollView>
);
}
有什么帮助吗?
【问题讨论】:
-
哪个线程在调用这个
render()? -
在一个非常简单的应用程序中...在 app.js 中
-
minimal reproducible example 并请发布整个堆栈跟踪,以便人们可以帮助您。粘贴一种方法和大屏幕截图对任何人都没有帮助。从您到目前为止发布的内容来看,我猜您正在尝试从非 UI(非主)线程创建视图,这在 android 中是一个问题。
标签: android react-native react-native-svg