如何重写该函数,以便每次更改页面时都可以更新和加载该函数。事实是,加载功能仅在一页上起作用,但不会传递给其他页面,如何更改呢?
function loadModel(model) {
return function(dispatch) {
dispatch(moveToPending(model))
const resource = require(`../resources/${model}`)
const resourceActions = bindActionCreators(resource.actions, dispatch)
const toaster = new Toaster(dispatch)
return new Promise((resolve, reject) => {
resourceActions[getFunctionName(model)]()
.then(res => {
resolve(model)
dispatch(resolveSubscriptions(model))
})
.catch(err => {
if (debug) console.error(err)
reject({ ...err, model })
dispatch(resolveSubscriptions(model))
toaster.error(`Could not load ${model}!`)
})
})
}
}
更新。 这是componentWillMount(),我已经有了它,我需要添加什么?
componentWillMount() {
this.props.actions.subscribe(this.subscriptions)
.then(() => {
this.props.actions.fetchRegisters({year: this.state.currentYear, month: defaultMonths()})
.then(() => {
if (!this.props.registers.length) {
this.toaster.warning('There is no data for charts')
}
this.createReportState()
})
})
}
答案 0 :(得分:0)
React有一些生命周期方法。为此,您可以使用componentWillMount
或componentDidMount
。您可以将此功能作为道具传递给其他页面,并可以在componentWillMount
中调用它,例如:
componentWillMount() {
this.props.loadModel(//arg);
}