gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 04:23:16 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com