react中父元件呼叫子元件的方法

2021-10-10 16:50:16 字數 2850 閱讀 5442

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.子元...