我创建了一个可重用的日期选择器组件,我想在整个 React 应用程序中使用它。我遇到的问题是,在我使用日期选择器的每个 React 组件中,在用户交互期间调用的处理函数都是相同的。这意味着我需要将它们移动到外部文件。
问题是一旦我将 thess 函数移动到一个不是 React 组件的外部文件,我将如何访问存储和调度函数?
做了一些研究并遇到了使用中间件的想法,但据我所知,中间件应该介于动作创建者和减速器之间。在这种特殊情况下,我只是将我的处理程序函数移动到一个外部文件,而不是真正在动作创建者和减速器之间插入任何东西。
说,我的外部文件是这样的:
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
// Import actions
import * as myActions from '../actions/myActions';
export const handleChangeDecadeStart = (datePickerId, value) => {
// Get current decade start
const currentDecadeStart = this.props.decadeStart;
// Set new decade start value
if(value === "prev") {
return this.props.actions.setDecadeStart(datePickerId, currentDecadeStart - 10);
} else {
return this.props.actions.setDecadeStart(datePickerId, currentDecadeStart + 10);
}
}
export const setDate = (datePickerId, value) => {
return this.props.actions.setDate(datePickerId, value);
}
function mapStateToProps(state) {
return {
decadeStart: state.calendars.decadeStart,
};
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(myActions, dispatch)
};
}
connect(mapStateToProps, mapDispatchToProps)(???);
我试图修改 React 组件中的内容,但我不确定这是否有意义。我connect
对底部的线特别困惑。