react中,我們經常會想到,通過父元素直接呼叫子元素的方法,實現高內聚的效果。而這個用法的寫法卻是,五花八門。如下所示:
import react ,
from
"react"
class
child
extends
component
render()
}class
parent
extends
component
handleonclick()
render()
>click<
/button>
>
<
/child>
<
/div>);
}}
import react ,
from
"react"
class
child
extends
component
render()
}class
parent
extends
component
render()
>click<
/button>
>
<
/child>
<
/div>);
}}
import react ,
from
"react"
import
from
"react-router-dom"
// 使用裝飾器給裹上一層高階函式(裝飾器需要安裝對應的babel包,此處作為演示使用)
@withrouter
class
child
extends
component
func()
render()
}class
parent
extends
component
render()
>click<
/button>
>
<
/child>
<
/div>);
}}
其實下面的缺點基本不算缺點了,因為函式式寫法,下面算是簡單的了。使用forwardref
只會讓你的元件定義的更複雜
父元件
import react from
'react'
;import child from
'./child'
;const
parent=(
)=>
return
(>click<
/button>
/>
<
/div>);
};export
default parent;
子元件
import react,
from
'react'
;import
from
'react-router-dom'
;const
child
= props =>;}
);function
func()
return
子元件<
/div>;}
;export
default
withrouter
(child)
;
這個方法其實更適合自定義hoc。但問題是,withrouter、connect、form.create
等方法並不能丟擲ref,假如child
本身就需要巢狀這些方法,那基本就不能混著用了。forwardref本身也是用來丟擲子元素,如input等原生元素的ref的,並不適合做元件ref丟擲,因為元件的使用場景太複雜了。下面看**實現:
父元件
import react from
'react'
;import child from
'./child'
;const
parent=(
)=>
return
(>click<
/button>
/>
<
/div>);
};export
default parent;
子元件
import react,
from
'react'
;@log
class
child
extends
component
;render()
}// 自定義可以丟擲子元件ref的hoc
function
log(comp)
= props;
return
/>;}
;return react.
forwardref
((props, ref)
=>
forwardref=
/>;}
);}export
default child;
父元件調子元件函式有兩種情況
選擇什麼方法,具體情況具體分析。 使用onref
自定義props
的方式更實用,無論元件是否需要巢狀hoc,巢狀多少層,一把梭就行了,不用改組件裡邊的**。乙個寫好的元件,只需要做加法就好了。
react父元件呼叫子元件方法
實現父元件呼叫子元件方法 基本思路 父元件可以通過props把自己的函式方法傳遞給子元件呼叫,那麼子元件通過這個函式把自己的元件例項傳回給父元件,父元件只需要儲存這些例項便可以呼叫子元件的方法 父元件import react,from react import from antd import fr...
React父元件呼叫子元件方法
import react,from react export default class parent extends component click click e class child extends component myname alert hello from child compon...
react 父元件呼叫子元件的方法
1.父元件內的 onref e this.modal e 新增 add e this.modal.showmodal 步奏分析 父元件給子元件傳入乙個onref方法過去。接受子元件反饋的引數e,把接受到的值賦予給,this.modal這時就可以呼叫子元件的乙個方法叫showmodal 方法。2.子元...