这真的很奇怪&尴尬&我似乎无法理解这里的错误。
这是' smart'成分:
width: parent.width / 2
这是'演示文稿'成分:
Column
我似乎无法弄清楚为什么 inputs:
- name: repo
- path:
run:
path: repo/
args:
- npm install
- grunt build
没有作为道具传递到组件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
答案 0 :(得分:0)
我看了你的代码而我没有发现你的问题, 但我有一些注意事项:
您不应在mapDispatchToProps中传递参数viewBoxCoOrdinates
。
你可以检查 bindActionCreators 可能是解决方案
例如:
import {bindActionCreators} from 'react-redux';
const mapDispatchToProps = ( dispatch ) => {
return({
dispatchSetInitialViewBox : bindActionCreators(viewBoxCoOrdinates, dispatch)
}
});
};
您可以通过props.dispatchSetInitialViewBox();
访问您的函数更多信息:bindActionCreators
答案 1 :(得分:0)
您可以使用简写表示法将调度映射到这样的道具:
export default connect( mapStateToProps, { setInitialViewBox })( TemplateParent );
在您的组件中,您可以this.props.setInitialViewBox
。