需求是这样的:
多个组件
调用A组件
的某个方法fn
,以实现A组件
的内部数据保存。
而且这个fn
是动态的,根据不同的组件而变化。
依据我以往的经验:
只要拿到A组件
的实例,就可以调用和修改fn
但不知道如何拿到组件的实例?或者其他方式?
谢谢~
多个组件
调用A组件
的某个方法fn
,以实现A组件
的内部数据保存。
而且这个fn
是动态的,根据不同的组件而变化。
只要拿到A组件
的实例,就可以调用和修改fn
但不知道如何拿到组件的实例?或者其他方式?
谢谢~
首先我不清楚你的这种需求是怎么产生的。
多个组件调用A组件的某个方法fn
,这种完全可以根据组件通信去解决,不建议使用这种“黑科技”
如果只是学术上的问题 如何拿到组件的实例
那么很简单,react提供了一种方法就是this.refs api
比如
// this.refs.div
<div ref="div" />
这个api已经废弃了,现在的写法是这样的
// this.div 现在就是div的引用了
<div ref={ref => this.div = ref} />
在最新的react16.3中api进行了再次升级,现在的写法是这样的。
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.myRef = React.createRef();
}
render() {
// const node = this.myRef.current; 这样可以拿到组件实例
return <div ref={this.myRef} />;
}
}
建议直接看官方文档, https://reactjs.org/docs/refs...
希望我的回答对你有帮助。
4 回答1.7k 阅读
2 回答1.1k 阅读✓ 已解决
2 回答2.6k 阅读
1 回答1k 阅读✓ 已解决
1 回答715 阅读✓ 已解决
2 回答880 阅读✓ 已解决
4 回答1.3k 阅读
ref
this.xxx=React.createRef()
类似这样?