首页 > 解决方案 > 如何从请求中获取所有数据

问题描述

我从服务器接收数据并尝试从“一个”对象中获取“名称”并得到一个未定义的错误。如果您删除请求中的替换,则“fetchData (response.data)”行与“fetchData (response.data.one)”和选择器中的“return state.one.name;” 到“返回 state.name;” 结果返回数据。是什么导致了这个错误?查询和引用相同的对象。

要求

export function fetchData (data) {
    return {
        type: "GET_DATA_REQUEST",
        payload: data
    }
}

export function fetchDataRequest(url) {
    return(dispatch)=> {
        fetch(url)
            .then(response => {
                    if (!response.ok) {
                        throw new Error(response.statusText);
                    }
                    return response;
                }
            )
            .then(response => response.json())
            .then(response => dispatch(fetchData(response.data)))
    }
}

选择器

export const getRequestCity = (state) => {
    return state.one.name;
}

标签: reactjsfetch

解决方案


您可以one在访问对象之前检查对象是否存在,如下所示 -

export const getRequestCity = (state) => {
    if (state.one) {
        return state.one.name;      
    }
}

推荐阅读