Reactjs TypeError:functionName不是函数(Redux-useDispatch)
我得到了Reactjs TypeError:functionName不是函数(Redux-useDispatch),reactjs,redux,Reactjs,Redux,我得到了TypeError:functionName不是一个函数,当我用useDispatch调用它时。初始状态作为空数组返回正常值。这是我的代码: 行动: export const getTopStories = () => async (dispatch) => { try { const { data } = await axios.get('http://news-site.com/api'); dispatch({ type: GE
TypeError:functionName不是一个函数,当我用useDispatch
调用它时。初始状态
作为空数组返回正常值。这是我的代码:
行动:
export const getTopStories = () => async (dispatch) => {
try {
const { data } = await axios.get('http://news-site.com/api');
dispatch({
type: GET_TOP_STORIES,
payload: data,
});
} catch (err) {
console.log(err)
}
};
减速器:
const initialState = {
topStories: [],
};
export default (state = initialState, action) => {
switch (action.type) {
case GET_TOP_STORIES:
return { ...state, topStories: action.payload};
default:
return state;
}
};
第页:
您正在尝试从reducer状态提取操作。如果你不这样做的话。要获取状态,可以像现在一样使用useSelector
hook。但要使用该操作,您需要导入该函数并在已有的调度中使用它
大概是这样的:
import { useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { getTopStories } from './action.js'; // Adjust the path
const TopStories = () => {
const stories = useSelector((state) => state.stories);
const { topStories } = stories;
const dispatch = useDispatch();
useEffect(() => {
dispatch(getTopStories());
}, []);
您正在尝试从reducer状态提取操作。如果你不这样做的话。要获取状态,可以像现在一样使用useSelector
hook。但要使用该操作,您需要导入该函数并在已有的调度中使用它
大概是这样的:
import { useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { getTopStories } from './action.js'; // Adjust the path
const TopStories = () => {
const stories = useSelector((state) => state.stories);
const { topStories } = stories;
const dispatch = useDispatch();
useEffect(() => {
dispatch(getTopStories());
}, []);
啊,是的,我忘了导入函数。非常感谢您的快速回复!:-)啊,是的,我忘了导入函数。非常感谢您的快速回复!:-)