Reactjs 调用连接的子引用实例方法的typescript
简单地说,我有一个子组件通过redux连接Reactjs 调用连接的子引用实例方法的typescript,reactjs,react-redux,Reactjs,React Redux,简单地说,我有一个子组件通过redux连接 class Child extends React.Component { foo () {} } export default connect()(Child); 一个父母包含它 class Parent extends React.Component { childRef: React.RefObject<Child> = React.createRef() bar () { if (thi
class Child extends React.Component {
foo () {}
}
export default connect()(Child);
一个父母包含它
class Parent extends React.Component {
childRef: React.RefObject<Child> = React.createRef()
bar () {
if (this.childRef.current) {
/*
* here typescript complains that
* Property 'foo' does not exist on
* type 'ConnectedComponentClass<typeof Child...'
*/
this.childRef.current.foo();
}
}
render () {
return (
<Child ref={this.childRef} />
);
}
}
类父级扩展React.Component{
childRef:React.ReObject=React.createRef()
条(){
如果(此.childRef.current){
/*
*这里typescript抱怨说
*上不存在属性“foo”
*键入“ConnectedComponentClass我遇到了同样的问题,无法找到合法的解决方案。但是,我确实设法通过使用类型“any”重新声明子组件来破解它,如下所示:
class Parent extends React.Component {
childRef: React.RefObject<Child> = React.createRef()
bar () {
if (this.childRef.current) {
const childRef: any = this.childRef.current;
childRef.foo();
}
}
render () {
return (
<Child ref={this.childRef} />
);
}
}
类父级扩展React.Component{
childRef:React.ReObject=React.createRef()
条(){
如果(此.childRef.current){
const childRef:any=this.childRef.current;
childRef.foo();
}
}
渲染(){
返回(
);
}
}
如果你能想出一个更好的解决方案,我很乐意听听。还有其他人找到了解决方案吗?
class Parent extends React.Component {
childRef: React.RefObject<Child> = React.createRef()
bar () {
if (this.childRef.current) {
const childRef: any = this.childRef.current;
childRef.foo();
}
}
render () {
return (
<Child ref={this.childRef} />
);
}
}