私はReactを使っていますが、私は 'event'に加えていくつかの引数を渡したいので、これに対して高次関数を使うことにしました。高次関数による引数の受け渡し
しかし、高次関数に渡された 'id'は認識されません。
コンテナコンポーネント
...
const mapDispatchToProps = (dispatch) => {
return({
dispatchSelectElement : function(e){
console.log(id); // Error: id is not defined.
dispatch(selectElement(id, type, pos));
},
...
});
};
const C_ElementParent = connect(mapStateToProps, mapDispatchToProps)(ElementParent);
コンテナコンポーネント&以下のプレゼンテーションコンポーネントの間に座っている別のコンポーネントがあります。 console.logで報告されているように、小道具はうまく通過しています。上記のdispatchSelectElement
は、eventProps
以下に渡されます。
プレゼンテーションコンポーネント
const Element = ({ id, colorName, eleProps, eventProps }) => {
let handleDispatchSelectEle = function(id){
return eventProps.dispatchSelectElement;
}
return(
<g id = { id }>
<path onMouseDown = { eleProps.get("mouseDown") && handleDispatchSelectEle(id)} />
</g>
);
};
を記述する必要がありますか?あなたが私たちに示したコードでは、実際にエラーが発生した時点で範囲内に 'id'変数はありません。なぜそこに定義すべきだと思いましたか? – Bergi
@Bergi 'id'は' path'要素内のhandleDispatchSelectEle関数で渡されます。次に、handleDispatchSelectEleは、dispatchSelectElement関数を返します。 – Kayote
さて、私は今参照してください。それはどのように動作するのではありません。私は答えを書くつもりです。 – Bergi