Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript this.props.dispatch()。则不是函数_Javascript_Reactjs_Redux - Fatal编程技术网

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商店更新后,请帮助我,先生,