我有一个如下所示的React组件。此组件在其他地方与ref
一起使用。我有办法通过myMethod
来呼叫ref
吗?
class MyView extends Component {
myMethod() {
}
render() {
return (
<View style={{flex: 1}}>
{this.props.children}
</View>
)
}
}
export default connect((state) => ({
reduxState: state
})
)(MyView)
答案 0 :(得分:2)
是的,这是可能的。使用像
这样的连接创建容器组件export default connect((state) => ({
reduxState: state
}), null, null, { withRef: true }
)
请查看此处的connect
文档
简而言之(来自文档):[withRef](Boolean):如果为true,则将ref存储到包装的组件实例,并通过getWrappedInstance()方法使其可用。
现在为了使用组件引用myMethod
componentDidMount () {
this.refs.component.getWrappedInstance().myMethod();
}
render() {
return (
<MyView ref="component" />
)
}
答案 1 :(得分:0)
你可以这样做:
componentDidMount() {
this._myViewInstance.myMethod();
}
render() {
return (
<div><MyView ref={ref => this._myViewInstance = ref}/></div>
)
}