Javascript 为什么状态是未定义的?[挂钩/重排]
我试图通过钩子使用Redux,但是状态总是返回一个空数组,而不是fetch请求中的数据 行动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
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}],...}}