私は私のコンポーネント(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はそれをListに渡します。リストのボタンを押すと、私はアプリケーションのclearFilter()を起動させたいが、それは何らかの理由で関数として計算されないためである。
ボタンを押すたびにundefined is not a function (evaluating '_this3.applyFilter()')
になります。
ListのボタンからアプリケーションのclearFilterを起動するにはどうすればよいですか?
'clearFilter'が呼び出されたようで、未定義のsetStateコールバックでは' applyFilter'です。あなたはそれを縛ると思いましたか? – David
申し訳ありませんが、忘れて言いました:this.applyfilter = this.applyfilter.bind(this);アプリケーションのコンストラクタで定義されています – Ted
applyFilterは定義されていないようです... –