我有一个自定义组件如下。有趣的是,ref
未设置,onLayout
未被触发。如果我将MyView
包含在View
类中的另一个Parent
内,则会解决这些问题。
ref和onLayout都没有工作
const MyView = props =>
<View style={{flex: 1}}>
{this.props.children}
</View>
参考资料
class MyView extends Component {
render() {
return (
<View style={{flex: 1}}>
{this.props.children}
</View>
)
}
}
示例用法
class Parent extends Component {
render() {
return (
<MyView ref={c => this.myView = c} onLayout={e => console.log(e)} />
)
}
}
答案 0 :(得分:2)
ref
仅适用于组件,这就是它在第一种情况下不起作用的原因。
onLayout
是View
的一种方法,不会被每个Component
继承。传入prop
并将其设置为包含View
可以解决问题。