React native 为什么只在don';在潜台词中没有触发?

React native 为什么只在don';在潜台词中没有触发?,react-native,React Native,我有一个问题是关于“唯一付款”活动 密码 <View> <Text> <Text onLayout={e => {console.log("this isn't triggered!")}}>{"foo"}</Text> </Text> </View> {console.log(“这不是被触发的!”)}>{“foo”} B代码 <View> <Text onLayout={e

我有一个问题是关于“唯一付款”活动

密码

<View>
  <Text>
    <Text onLayout={e => {console.log("this isn't triggered!")}}>{"foo"}</Text>
  </Text>
</View>

{console.log(“这不是被触发的!”)}>{“foo”}
B代码

<View>
  <Text onLayout={e => {console.log("here the event it is called, but I need call in a SubText")}}>{"foo"}</Text>
</View>

{console.log(“这里是调用它的事件,但我需要在子文本中调用它”)}>{“foo”}

我在RN repo上发现了此相关错误:。仍在寻找一种测量嵌套文本的方法

这是给子孙后代的答案。在我找到答案之前,我在这里翻滚了一遍,所以也许这会帮助其他人

在我的例子中,我需要在滚动视图中显示属性文本,并能够滚动到文本中的不同子字符串

,因此尝试将
onLayout
prop添加到嵌套的文本元素实际上没有效果,因为它在生成的DOM中实际上没有表示为自己的文本元素

就我而言,解决方案是:

从“React”导入React
从“react native”导入{样式表、滚动视图、文本、视图}
常量应用=()=>{
const scrollViewRef=React.useRef(null)
const onTextLayout=React.useCallback(事件=>{
const scrollLocation=event.nativeEvent.lines.find(
line=>line.text==“6.你好\n”,
).y
如果(滚动视图参考当前){
scrollViewRef.current.scrollTo({
x:0,,
y:滚动位置,
是的,
})
}
}, [])
返回(
1.你好{“\n”}
2.你好{“\n”}
3.你好{“\n”}
4.你好{“\n”}
5.你好{“\n”}
6.你好{“\n”}
7.你好{“\n”}
8.你好{“\n”}
9.你好{“\n”}
10.你好{“\n”}
10.你好{“\n”}
10.你好{“\n”}
10.你好{“\n”}
)
}
const styles=StyleSheet.create({
容器:{
弹性:1,
背景颜色:“fff”,
对齐项目:“中心”,
辩护内容:“中心”,
},
})
导出默认应用程序

作为旁注,我在使用
onTextLayout=
prop的行中遇到了Typescript错误。谷歌搜索解决方案不会显示任何结果,但会调用prop函数

您是否尝试过将内部文本包装到视图标记中?例如
{console.log(“这不是触发的!”)}>{“foo”}[…]
?是的/文本组件不允许在其中查看。啊,是的,我忘了,但是另一种方法可以是使用measure()而不是onLayout()