Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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 为什么状态是未定义的?[挂钩/重排]_Javascript_Reactjs_Redux_React Redux_React Hooks - Fatal编程技术网

Javascript 为什么状态是未定义的?[挂钩/重排]

Javascript 为什么状态是未定义的?[挂钩/重排],javascript,reactjs,redux,react-redux,react-hooks,Javascript,Reactjs,Redux,React Redux,React Hooks,我试图通过钩子使用Redux,但是状态总是返回一个空数组,而不是fetch请求中的数据 行动 export const loading = payload => { return { type: types.LOADING, payload } } export const getBudget = payload => { return { type: types.BUDGET_DATA, pa

我试图通过钩子使用Redux,但是状态总是返回一个空数组,而不是fetch请求中的数据

行动

export const loading = payload => {
    return {
        type: types.LOADING,
        payload
    }
}

export const getBudget = payload => {
    return {
        type: types.BUDGET_DATA,
        payload
    }
}

export const budgetData = () => {
    return dispatch => {
        dispatch(loading(true))
        const url = `${URL_BUDGET}`
        fetch(url)
            .then(response => dispatch(getBudget(response.data)))
            .catch(err => console.log(err))
        dispatch(loading(false))
    }
}
减速器

import * as types from '../types'

const initialState = {
    budget: []
}

export default (state = initialState, action) => {
    switch (action.types) {
        case types.BUDGET_DATA:
            return {
                ...state,
                budget: action.payload
            }
        default:
            return state
    }
}
组成部分

const Home = () => {
    useDispatch(budgetData(), categoryData())
    const state = useSelector(state => state.data)
    const budgets = useSelector(state => state.data.budget)
    const categories = useSelector(state => state.data.category)

    //console.log(this.props.dataReducer)
    return (
        <div>
            content
        </div>
    )
}

export default Home
调度有问题吗?!添加加载也没有帮助

返回随后需要调用的
dispatch
函数。如果要在首次渲染组件时仅执行一次,可以将其与没有依赖项的进行配对:

const Home=()=>{
const dispatch=usedpatch()
const budgets=useSelector(state=>state.data.budget)
const categories=useSelector(state=>state.data.categority)
useffect(()=>{
分派(budgetData())
分派(categoryData())
}, [])
返回(
内容
)
}
导出默认主页
{"meta":{},"data":{"example":[{"timestamp":28378545,"value":5}],...}}