Reactjs 将第二个参数(ownProps)传递给mapDispatchToProps-是一个错误的约定吗?
我是开发React应用程序的新手。所以,我有一些问题。 在mapDispatchToProps中访问状态属性的最佳做法是什么?在mDTP函数中使用ownProps.store.getState()是一种不好的做法吗? 在mDTP中使用第二个参数的原因是什么(除了在容器组件中传递附加属性) 请就这一主题提出建议。Reactjs 将第二个参数(ownProps)传递给mapDispatchToProps-是一个错误的约定吗?,reactjs,redux,Reactjs,Redux,我是开发React应用程序的新手。所以,我有一些问题。 在mapDispatchToProps中访问状态属性的最佳做法是什么?在mDTP函数中使用ownProps.store.getState()是一种不好的做法吗? 在mDTP中使用第二个参数的原因是什么(除了在容器组件中传递附加属性) 请就这一主题提出建议。 非常感谢你!对不起,我的语言不通。这个答案可能会帮助您: mapDispatchToProps的存在是为了在遵循容器>组件模式时通过组件访问还原器 例如,我有以下减速器: const
非常感谢你!对不起,我的语言不通。这个答案可能会帮助您: mapDispatchToProps的存在是为了在遵循容器>组件模式时通过组件访问还原器 例如,我有以下减速器:
const updateToPreviousMonth = (state) => {
let newState = state,
currentMonth = newState.get('currentMonth');
let previousMonth = sanitizedDate(moment(currentMonth).subtract(1, 'month'));
return newState.set('currentMonth', previousMonth);
};
const updateSelectedDate = (state, action) => {
return state.set('selectedDate', action.selectedDate);
};
export default (state = initialState, action = {}) => {
switch (action.type) {
case constants.SET_TO_PREVIOUS_MONTH:
return updateToPreviousMonth(state);
case constants.UPDATE_SELECTED_DATE:
return updateSelectedDate(state, action);
default:
return state;
}
};
常量是返回已更改状态的操作和函数(还原器)
const mapDispatchToProps = {
setToPreviousMonth: CalendarViewRedux.actions.setToPreviousMonth,
updateSelectedDate: CalendarViewRedux.actions.updateSelectedDate
};
export class CalendarView extends PureComponent {
componentDidMount() {
this.props.loadSchedules();
}
render() {
return (<CalendarViewRender
{...this.props} />);
}
}
export default connect(mapStateToProps, mapDispatchToProps)(CalendarView);
const mapDispatchToProps={
setToPreviousMonth:CalendarViewRedux.actions.setToPreviousMonth,
updateSelectedDate:CalendarViewRedux.actions.updateSelectedDate
};
导出类CalendarView扩展了PureComponent{
componentDidMount(){
this.props.loadSchedules();
}
render(){
返回();
}
}
导出默认连接(MapStateTrops、mapDispatchToProps)(日历视图);
在本例中,我将在mapDispatchToProps中传递操作,当调用这些操作时,它们将从以前激活还原器,因为我使用了mapDispatchToProps,它们现在在CalendarView组件中可用
希望这有帮助,如果有帮助,请标记为已解决 如果我需要重置状态,我的地图DispatchToprops上有“ownProps”导航到主屏幕(在我的情况下,如果用户登录或关闭,我需要显示不同的屏幕)。下面是一个例子:
const mapDispatchToProps = (dispatch, ownProps) => {
return {
onChangeText: (key, value) => {
dispatch(onChangeField(key, value))
},
goToHomeScreen: () => {
ownProps.navigation.dispatch(StackActions.reset({index: 0, key: null, actions: [NavigationActions.navigate({ routeName: 'LoggedDrawer'})]}))
},
}
}
打电话给你,我只是这么做:
this.props.goToHomeScreen();
此外,我相信这有助于: