У меня есть проблема при отправке действия внутри useEffect в функциональном компоненте
в компоненте класса это выглядит так
import getAllItem from './actions/item'
export class Home extends Component {
state = { menus: [] }
componentDidMount() {
this.props.dispatch(getAllItem())
this.setState({ menus: this.props.menu })
})
}
...
...
const mapStateToProps = state => {
return { menu: state.reItem.itemList}
}
export default connect(mapStateToProps)(Home);
в консоли возвращает массив моих меню
Я хочу преобразовать его в функциональный компонент, и я попытался
import getAllItem from './actions/item'
export default function Home() {
const dispatch = useDispatch();
const menuState = useSelector(state => state.reItem.itemList)
const [menus, setMenus] = useState();
useEffect(() => {
dispatch(getAllItem())
setMenus(menuState);
}, [])
...
...
Я ожидал, что мой функциональный компонент будет иметь тот же результат, что и компонент класса, но в консоли он возвращает "TypeError: (0, _item.default) не является функцией "
мой код действия прост
export const getAllItem = () => {
return {
type: 'GET_ITEM',
payload: Axios.get(`${URL}/item/`)
}
}
и редуктор
const initialState = {
itemList: []
}
const item = (state = initialState, action) => {
switch (action.type) {
case 'GET_ITEM':
return {
...state,
itemList: action.payload.data.result
}