我有這片組件的代碼如何爲我的組件啓動此功能(React Native)?
class List extends Component {
...
render() {
...
return
<TouchableHighlight onPress={()=>this.props.clearFilter()}>
</TouchableHighlight>
...
}
...
}
父:
class Nav extends Component {
...
// render implements renderscene for navigator
renderScene(route, navigator){
...
return (
<List
navigator={navigator}
clearFilter={this.props.clearFilter}
ref={component => this._list = component}/>
);
}
和:
export default class App extends Component {
applyfilter(){
//...
}
constructor(props){
...
this.applyfilter = this.applyfilter.bind(this);
}
clearFilter(){
this.setState(
{
_filter:null,
_filterValue:"",
},()=>{this.applyFilter();}
);
_renderScene = ({ route }) => {
return <Nav ref={component => this._nav = component} clearFilter={this.clearFilter.bind(this)}/>;
...
}
所以我一起從應用程序傳遞clearFilter()
功能NAV ,Nav將它傳遞給List。當List按鈕被按下時,我希望App的clearFilter()能夠觸發,但是由於某種原因它不會作爲函數計算。
每次按下按鈕,我都會得到undefined is not a function (evaluating '_this3.applyFilter()')
。
如何從列表按鈕中觸發clearFilter for App?
看起來'clearFilter'被調用,並且在未定義的setState回調中它是'applyFilter'。你記得要綁定它嗎? – David
對不起,忘了提及:this.applyfilter = this.applyfilter.bind(this);在App的構造函數中定義,編輯 – Ted
applyFilter似乎沒有被定義... –