これは本当に変です& awkward &私はここで何が間違っているのか分かりません。ここでReact PresentationコンポーネントがSmartDomponentからMapDispatchToPropsを受信しない
は「スマート」コンポーネントです:
import { connect } from "react-redux";
import TemplateParent from "../component/svg/TemplateParent";
import { setInitialViewBox } from "../modcon/Actions";
const mapStateToProps = ({ svgTemplateState }) => {
return({
renderType : "Template Selection",
svgTemplateState : svgTemplateState
});
};
const mapDispatchToProps = (dispatch) => {
return({
dispatchSetInitialViewBox : (viewBoxCoOrdinates) => {
dispatch(setInitialViewBox(viewBoxCoOrdinates));
}
});
};
const C_TemSelectionSVGTemplate = connect(mapStateToProps, mapDispatchToProps)(TemplateParent);
export default C_TemSelectionSVGTemplate;
そして、ここでは「プレゼンテーション」コンポーネントです:
import React from "react";
import { calcViewBoxCentre } from "../../modcon/GlobalAPI";
const TemplateParent = React.createClass({
componentDidUpdate : function(){
let getEleDimension = this.gEle.getBBox(),
viewboxValue = calcViewBoxCentre(getEleDimension, 1.75);
/*** ERROR IS HERE: this.props.dispatchSetInitialViewBox is not a function ***/
this.props.dispatchSetInitialViewBox(viewboxValue);
},
render : function(){
/*** the below console logs only shows two props: `renderType` & `svgTemplateState` ***/
console.log(this.props);
return(
<g className = "templateParent"
ref = {(g) => this.gEle = g }>
</g>
);
}
});
私はmapDispatchToProps
が小道具として渡されていない理由を把握するように見えるカントコンポーネントTemplateParent
に転送します。
要求されたとして、ここでは、アクションの作成者setInitialViewBox
です:
export const setInitialViewBox = (viewBox) => {
return({
type : SET_INITIAL_VIEWBOX,
svgPayload : {
defaultTab : {
viewBox : viewBox,
scale : 1
},
bodyTab : {
viewBox : viewBox,
scale : 1
},
sleeveTab : {
viewBox : viewBox,
scale : 1
}
}
});
};
必ずしも関連はありませんが、TemplateParentコンポーネントをエクスポートしていますか? – Pineda
はい私はそうです。私はプレゼンテーションコンポーネント 'TemplateParent'を単純化しなければなりませんでした。そこではいくつかの計算が行われています。しかし、はい、 'デフォルトのTemplateParentをエクスポートしています ' – Kayote
' setInitialViewBox'アクションを表示 – lux