Javascript this.props.dispatch()。则不是函数
当Javascript this.props.dispatch()。则不是函数,javascript,reactjs,redux,Javascript,Reactjs,Redux,当分派操作完成时,我正在尝试做一些事情,一个类似的问题导致我尝试使用。然后。我得到一个不存在的错误,this.props.dispatch()。那么它不是一个函数: export function unpackStore(redux_store, namespace) { // namespace is determined by what name you gave each reducer in combineReducers; client/reducers/index.js
分派
操作完成时,我正在尝试做一些事情,一个类似的问题导致我尝试使用。然后
。我得到一个不存在的错误,this.props.dispatch()。那么它不是一个函数
:
export function unpackStore(redux_store, namespace) {
// namespace is determined by what name you gave each reducer in combineReducers; client/reducers/index.js
let final_props = {};
let KEYS = Object.keys(redux_store[namespace]);
for (let key of KEYS) {
final_props[key] = redux_store[namespace][key];
}
return final_props;
}
export function basicUnpackStoreClosure(namespace) {
return function(store) {
let props = unpackStore(store, namespace);
return props;
}
}
@connect(basicUnpackStoreClosure('login_info'))
export default class LoginPage extends MyComponent {
constructor(props) {
let custom_methods = [
'handleLoginOrRegisterToggle',
'handleOnKeyDownInInputs',
'onLoginSubmit',
'onRegisterSubmit',
]
super(props, custom_methods);
this.state = {
mode: 'login',
email: '',
password: '',
password_confirm: ''
};
if (props.mode == 'register') {
this.state.mode = 'register';
}
}
onLoginSubmit() {
let self = this;
let reroute = function() {
browserHistory.push(self.props.destination_url);
}
this.props.dispatch({type: 'LOG_IN', payload: "fake@fake.com"})
.then((response) => {
browserHistory.push(self.props.destination_url);
})
}
我们还尝试了在this.setState
完成时执行某些操作的方法,将其作为第二个参数传递:
this.props.dispatch({type: 'LOG_IN', payload: "fake@fake.com"}, reroute)
两者都不起作用。
this.props.dispatch
似乎是免费使用@connect
装饰程序的。只有在使用“登录”操作更新此Redux存储之后,我如何才能运行某些操作?通常,连接HOC用于将操作与组件绑定。比如,
export default connect(mapStateToProps, mapDispatchToProps)(ApplicationContainer);
执行此操作后,将绑定this.props.getApplications
,其中getApplications
是您需要触发的操作
根据您的评论,如果您想访问
this.props.dispatch
而不是绑定操作,只需调用connect()
,而不传递任何映射程序,默认行为将注入dispatch。您可以安装“redux promise”中间件并将其包含在您的应用商店中。这里的问题是承诺没有兑现。包括“redux promise”中间件将解决问题因此,您的问题是,如何从调度呼叫中获取promise
,对吗?我不确定这是否有帮助<代码>调度被注入,它就在那里…但是我们不能调用。然后(…)
在它上面,这就是我看到的建议。我们想在调度完成后运行回调,这意味着redux商店更新后,请帮助我,先生,