我有这片组件的代码如何为我的组件启动此功能(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似乎没有被定义... –