javascript - 将调度函数传递给子组件

标签 javascript reactjs redux react-router

我正在使用 redux 开发一个通用的 React 应用程序。在我的 Action 创建者中,我将数据发送到存储。

在 ComponentDidMount 函数中,调度函数是好的,但是当我想将它传递给渲染函数中的组件时,它给了我错误,无法读取未定义的属性"dispatch" 如何将我的调度函数传递给组件?

容器代码:

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);

最佳答案

确实,您需要使用mapDispatchToProps来访问调度函数。

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

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

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

关于javascript - 将调度函数传递给子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45273390/

相关文章:

javascript - React Router 的 Props 错误

javascript - 如何使用 Javascript 保护机器人/爬虫的表单

javascript - 单击元素(带偏移量)

reactjs - react-hook-form material-ui 下拉字段缺少 `name` 属性 :

javascript - React 如何通过组件跟踪事件

reactjs - Redux saga 未在实时套接字上调度操作

javascript - .tofix(2) 返回小数点后 2 个以上的数字

javascript - 从值中更改具有一个属性的对象的键

javascript - React : What does following mean: import register, * as fromRegister from './registerReducer' ?

javascript - 组件的 child 不应该被改变