Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将分派函数传递给子组件_Javascript_Reactjs_Redux_React Router - Fatal编程技术网

Javascript 将分派函数传递给子组件

Javascript 将分派函数传递给子组件,javascript,reactjs,redux,react-router,Javascript,Reactjs,Redux,React Router,我正在使用redux开发一个通用react应用程序。在action creators中,我将数据发送到存储 在ComponentDidMount函数中,分派函数是可以的,但当我想将它传递给渲染函数中的组件时,它会给我一个错误,无法读取未定义的属性“分派” 如何将分派函数传递给组件 集装箱代码: class DealContainer extends React.Component { static readyOnActions(dispatch, params) {

我正在使用redux开发一个通用react应用程序。在action creators中,我将数据发送到存储

在ComponentDidMount函数中,分派函数是可以的,但当我想将它传递给渲染函数中的组件时,它会给我一个错误,无法读取未定义的属性“分派” 如何将分派函数传递给组件

集装箱代码:

class DealContainer extends React.Component {
static readyOnActions(dispatch, params) {
                return Promise.all([
                    dispatch(DealsActions.fetchDealData(params.id)),
                    dispatch(SubmitActions.fetchSubmitInitialData()),

                ]);
            }

            componentDidMount() {
                DealContainer.readyOnActions(this.props.dispatch,this.props.params);

            }
    render() {
    return(
    <MyComponent 
    changeStoreFunction = {this.props.dispatch(SubmitActions.changeUserId)}
    />)

    }
    const mapStateToProps = (state, ownProps) => {
        return {
            dealData: state.dealData,
            routing: ownProps.location.query,
            submitInitialData: state.submitInitialData,
            id: ownProps.params.id,
            mapInfo: state.mapInfo,
            areaList: state.areaList,
        }
    };

    DealContainer.propTypes = {
        params: PropTypes.shape({
            id: PropTypes.string.isRequired,
        }).isRequired,
        dispatch: PropTypes.func.isRequired,
    };
        }
    export default connect(mapStateToProps)(DealContainer);
类DealContainer扩展React.Component{
静态readyOnActions(分派、参数){
回报你的承诺([
分派(DealsActions.fetchDealData(params.id)),
分派(SubmitActions.fetchSubmitInitialData()),
]);
}
componentDidMount(){
DealContainer.readyOnActions(this.props.dispatch,this.props.params);
}
render(){
返回(
)
}
const mapStateToProps=(state,ownProps)=>{
返回{
dealData:state.dealData,
路由:ownProps.location.query,
submitInitialData:state.submitInitialData,
id:ownProps.params.id,
mapInfo:state.mapInfo,
areaList:state.areaList,
}
};
DealContainer.propTypes={
参数:PropTypes.shape({
id:PropTypes.string.isRequired,
}).要求,
调度:需要PropTypes.func.isRequired,
};
}
导出默认连接(MapStateTops)(DealContainer);

实际上,您需要使用mapDispatchToProps来访问dispatch功能

在那里,您可以定义将在组件渲染方法中调用的函数:

const mapDispatchToProps = (dispatch) => {
  return {
    yourFunctionToCallFromComponent: () => {
      dispatch(yourAction())
    }
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(DealContainer);

您的
mapDispatchToProps
在哪里?@AkashShinde我使用propTypeseven,尽管您需要定义
mapDispatchToProps
函数从根目录访问调度context@SepEhr如果这个答案对你有帮助,请勾选它作为解决你问题的答案:)谢谢