私は、別の関数を呼び出すコンポーネント内に同じ名前を持つ関数を持っています。
両方の機能が動作します
私が知りたいのはなぜですか(私の前提を参照してください)? 私は外部関数を再帰的に呼び出す場合は、this.myMethod()
を使用する必要がありますか?
このパターンは安全ですか?同じ名前の関数の中でpropsのメソッドを呼び出す
例:
myMethod(){
const {myMethod} = this.props;
if(typeof myMethod == 'function'){ // i was sure this will check the external myMethod func
myMethod(); // i was sure it will call the external myMethod func.
}
// what if i want to call to the external "myMethod" func (recursively)?
}
私はエンジンが外部myMethod
(?レキシカルスコープ)の体内myMethod
という名前の関数を探していることを前提とし、それを見つけました。
誰でもこの前提を確認できますか?ただ、このパターンがどのように共通の安全についての私の質問は、より明確にする
EDIT
。
のは、私はItem
のコンポーネントを持っており、それがPropTypes.func
のonTouch
小道具を持っているとしましょう、私は自分自身の関数内でいくつかの内部のロジックを実行し、コールバックまたは似たようprops
を介して受信された関数を実行したいと思います。
onInternalTouch
のような私の内部機能の新しい名前を見つけるのは大変なのでしょうか?同じ名前をつけても安全でしょうかonTouch
?
onTouch(){ // is this common practice?
const {onTouch} = this.props;
// ... internal component logic
onTouch();
}
onInternalTouch(){ // or should i bother finding a new name?
const {onTouch} = this.props;
// ... internal component logic
onTouch();
}
まあまあ、あなたは基本的に私のロジックをそのスニペットで繰り返しました。私があなたを正しく理解しているならば、 "親"のメソッドを再帰的に呼び出すためには、自分自身の中で 'this.myMethod'を使う必要があります(外側の' myMethod') –
okあなたの編集を見ました:) –
それは普通の練習ですか? (小道具を使った反応) –