我正在使用ref組件來強制性地從其父項的過濾器窗體上觸發重置。反應組件不公開方法
在同一組件有:
handleFilterReset() {
// this.filterForm is defined but reset() isn't exposed
// see console.log(this.filterForm) output below
this.filterForm.reset()
}
render() {
return (
<FilterBox onReset={::this.handleFilterReset}>
<FilterForm ref={(ref) => { this.filterForm = ref }} />
</FilterBox>
)
}
而且在FilterForm我們:
class FilterForm extends React.Component {
reset() {
// this is not being called
}
}
的console.log輸出:
ProxyComponent {props: Object, context: Object, refs: Object, updater: Object, _reactInternalInstance: ReactCompositeComponentWrapper…}
在我看來,這一切都是根據official docs完成。不過,我得到以下錯誤:
Uncaught TypeError: this.filterForm.reset is not a function
at SalesChannelsList.handleFilterReset
感謝
非常基本的建議Thibaut可能是一個React版本的東西,但根據提供的文檔,它應該是'class FilterForm extends React.Component' - 你缺少'React.'。 – Gorbles
@Gorbles,也許他已經忘了寫在帖子中,但是如果你從'react'進口像'import React,{Component},你可以這樣做 –
你正在使用'::'進行綁定,你可以嘗試使用'handleFilterReset =()=> {'並調用像'' –