Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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 进入react js时调用api响应_Javascript_Reactjs_Promise_React Redux_Es6 Promise - Fatal编程技术网

Javascript 进入react js时调用api响应

Javascript 进入react js时调用api响应,javascript,reactjs,promise,react-redux,es6-promise,Javascript,Reactjs,Promise,React Redux,Es6 Promise,我是redux和ReactJs的初学者。当我试图调用登录api时,我遇到了无法获得响应的问题 import { CALL_API } from 'redux-api-middleware'; export function login(toSend) { return function(dispatch, getState) { dispatch(mopetsLogin(toSend)).then(() => { consol

我是redux和ReactJs的初学者。当我试图调用登录api时,我遇到了无法获得响应的问题

import { CALL_API } from 'redux-api-middleware';
export function login(toSend) {
    return function(dispatch, getState) {
        dispatch(mopetsLogin(toSend)).then(() =>
        {
            console.log(getState().mopets_api.token.access_token);
            dispatch(mopetsMe(getState().mopets_api.token.access_token));
        });
    }
}

export function mopetsLogin(toSend) {
    console.log('toSend');
    console.log(toSend);
    return {
        [CALL_API]: {
            endpoint: 'http://api.mopets.com/app_dev.php/login',
            method: 'POST',
            /*headers: { 'Content-Type': 'application/json' },*/
            body: JSON.stringify(toSend),
            types: [
                'INITIAL_LOGIN_MOPETS_REQUEST',
                {
                    type: 'INITIAL_LOGIN_MOPETS_SUCCESS',
                    payload: (action, state, res) => {
                        const contentType = res.headers.get('Content-Type');
                        if (contentType && ~contentType.indexOf('json')) {
                            // Just making sure res.json() does not raise an error
                            const contentType = res.headers.get('Content-Type');
                            if (contentType && ~contentType.indexOf('json')) {
                                // Just making sure res.json() does not raise an error
                                return res.json().then((json) => {
                                        var o = new Object();
                                        o["token"] = json;
                                        return o;
                                    }
                                )
                            }
                            ;
                        }
                    }
                },
                'INITIAL_LOGIN_MOPETS_FAILURE'
            ]
        }
    }
}
main.bundle.js:42605未捕获(承诺中)类型错误:无法读取未定义的属性“access\u token”

此类型显示错误
请查看代码并提供一些信息以解决此问题。

由于您的

getState().mopets_api.token 
没有定义


可能只是路径问题,请尝试console.log您的res以检查对象是否正确填充。

调度函数中有两个
,然后是
。我删除了一个,但仍然有错误@Thinker
。然后(loginResult=>console.log(loginResult.token))
?也不要使用
newobject
use
return{token:json}怎么做?我不知道@AluanHaddad@PrakashSatanilogin方法返回包含令牌的对象的承诺。因此,您需要将一个单参数回调传递给
,然后
。参数引用该对象。我检查console.log(getState().mopets_api),但这显示的是null object@user1234087