Reactjs ReactNative:自定义组件上的ref和onLayout
我有一个自定义组件,如下所示。有趣的是,Reactjs ReactNative:自定义组件上的ref和onLayout,reactjs,react-native,Reactjs,React Native,我有一个自定义组件,如下所示。有趣的是,ref没有被设置,而onLayout也没有被触发。如果我将MyView包装在Parent类中的另一个View中,这些问题就会得到解决 既不是参考也不是仅布置工作 const MyView = props => <View style={{flex: 1}}> {this.props.children} </View> constmyview=props=> {this.props.c
ref
没有被设置,而onLayout
也没有被触发。如果我将MyView
包装在Parent
类中的另一个View
中,这些问题就会得到解决
既不是参考也不是仅布置工作
const MyView = props =>
<View style={{flex: 1}}>
{this.props.children}
</View>
constmyview=props=>
{this.props.children}
Ref在这里工作
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)} />
)
}
}
类MyView扩展组件{
render(){
返回(
{this.props.children}
)
}
}
示例用法
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)} />
)
}
}
类父级扩展组件{
render(){
返回(
this.myView=c}onLayout={e=>console.log(e)}/>
)
}
}
ref
只能在组件上工作,这就是为什么它在第一个场景中不工作的原因
onLayout
是一种查看的方法,不会被每个组件继承。传入道具
并将其设置在包含视图
可以解决此问题。在另一个视图中包装时,是否确实有效?我不会像那样使用ref,但是有一个特定的名称,但是如果可能的话,您不应该使用它。你到底想完成什么?我已经用更多的细节更新了这个问题。