私は、親からコンポーネント階層内の子の子まですべての関数を持っています。通常これはあまり問題にはなりませんが、子からパラメータを受け取る必要があります。 現在、このエラーメッセージが表示されています。未知(約束)TypeError:this.props.myFunctionは関数ではありません。ただ、いくつかのそれまでそうパラメータを持つ関数を引数に渡して反応を返す
class SomeComponent extends Component{
constructor(props){
super(props);
//does whatever stuff
this.myFunction = this.myFunction.bind(this);
}
//(only applicable to raw and normal forms)
myFunction(param){
console.log('do something: ', param);
}
render(){
return (<div><ChildComponent1 myFunction={()=>this.myFunction()}/></div>)
}
}
class ChildComponent1{
render(){
return (<div><ChildComponent2 myFunction={()=>this.props.myFunction()}/></div>)
}
}
class ChildComponent2{
render(){
return (<Button onClick={()=>this.props.myFunction(param)}>SomeButton</Button>)
}
}
:ここ
は何をして私のサンプルコードで、私は、ChildComponent2にすべての方法ダウンSomeComponentから小道具としてのMyFunctionを渡していた中で、私はそれをしたいですボタンがクリックされたときに呼び出され、ChildComponent2からパラメータを渡すときに呼び出されます。ありがとうございます!
実際の問題は、あなたのchildComponent1が実際に呼び出された引数を転送していない可能性があります。転送している関数が矢印関数でないようにリファクタリングする必要があるかもしれません最後に – Icepickle