訪問子組件函數React的文檔聲明父組件可以通過引用訪問組件函數。請參閱:https://facebook.github.io/react/tips/expose-component-functions.htmlReact ES6 |如何通過參考
我試圖在我的應用程序中使用它,但在調用子函數時遇到「未定義不是函數」錯誤。我想知道這與使用React類的ES6格式有什麼關係,因爲我沒有看到我的代碼和文檔之間有任何其他差異。
我有一個對話框組件,看起來像下面的僞代碼。對話框有一個調用save()的「Save」按鈕,它需要調用子內容組件中的save()函數。內容組件收集子窗體字段的信息並執行保存。
class MyDialog extends React.Component {
save() {
this.refs.content.save(); <-- save() is undefined
}
render() {
return (
<Dialog action={this.save.bind(this)}>
<Content ref="content"/>
</Dialog>);
}
}
class Content extends React.Component {
save() {
// Get values from child fields
// and save the content
}
}
我可以改爲通過一個道具(saveOnNextUpdate)下降到內容,然後執行保存,只要它是真實的,但我寧願弄清楚如何獲得上述工作的陣營文檔中詳細描述的方法。
有關如何讓doc方法工作或以不同方式訪問子組件函數的任何想法?
什麼版本的反應您使用的? – Tyrsius
你的僞示例工作:https://jsfiddle.net/vbj34euk/所以它可能是另一個問題。你能發佈更多真實的代碼嗎? – m90
用於包裝組件(與redux或其他插件連接的組件)。我們需要使用getWrappedInstance()來獲取包裝的實例,然後我們可以訪問該組件的狀態,引用和方法。這裏是解釋它的視頻 - https://youtu.be/VpdKjocgCtA – Prem