Как получить категории в WordPress Rest API, используя Reaction-Redux - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь получить название категории в ReactionJS из API WordPress Rest, используя Redux.

actions / Categories.js

import axios from 'axios';
import { GET_CATEGORIES } from './types';


export const getCategories = () => dispatch => {
    axios.get('/wp-json/wp/v2/categories')
        .then(res => {
            console.log(res);
            dispatch({
                type: GET_CATEGORIES,
                payload: res.data
            });
        }).catch(err => console.log(err));
}

redurs / Categories.js

import {GET_CATEGORIES} from '../actions/types';

const initialState = {
    categories: []
}

export default function (state = initialState, action) {
    switch (action.type) {
        case GET_CATEGORIES:
            return {
                ...state,
                categories: action.payload
            }
        default:
            return state;
    }
}

редукторы/index.js

import {combineReducers} from 'redux';
import posts from './posts';
import categories from './categories';
export default combineReducers({
    posts,
    categories
});

Я попробовал этот же способ получить сообщение, и это сработало.Но в случае категорий это ничего не дает.Я даже пытаюсь console.log (res) в действии / category.js, но не дает ответа в браузере.Кто-нибудь, пожалуйста, объясните мне, почему это происходит.

это здесь я пытаюсь сделать это sideDrawer.js

import React from 'react'
import Drawer from '@material-ui/core/Drawer';
import List from '@material-ui/core/List';
import Divider from '@material-ui/core/Divider';
import IconButton from '@material-ui/core/IconButton';
import ChevronLeftIcon from '@material-ui/icons/ChevronLeft';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import ListItem from '@material-ui/core/ListItem';
import ListItemIcon from '@material-ui/core/ListItemIcon';
import ListItemText from '@material-ui/core/ListItemText';
import InboxIcon from '@material-ui/icons/MoveToInbox';
import MailIcon from '@material-ui/icons/Mail';
import { connect } from 'react-redux';
import {getCategories} from '../actions/categories';

function SideDrawer({ handleDrawerClose, open, classes, theme}) {

  return (
    <Drawer
          className={classes.drawer}
          variant="persistent"
          anchor="left"
          open={open}
          classes={{
            paper: classes.drawerPaper,
          }}
        >
          <div className={classes.drawerHeader}>
            <IconButton onClick={handleDrawerClose}>
              {theme.direction === 'ltr' ? <ChevronLeftIcon /> : <ChevronRightIcon />}
            </IconButton>
          </div>
          <Divider />
          <List>
            {['Inbox', 'Starred', 'Send email', 'Drafts'].map((text, index) => (
              <ListItem button key={text}>
                <ListItemIcon>{index % 2 === 0 ? <InboxIcon /> : <MailIcon />}</ListItemIcon>
                <ListItemText primary={text} />
              </ListItem>
            ))}
          </List>
          <Divider />
          <List>
            {['All mail', 'Trash', 'Spam'].map((text, index) => (
              <ListItem button key={text}>
                <ListItemIcon>{index % 2 === 0 ? <InboxIcon /> : <MailIcon />}</ListItemIcon>
                <ListItemText primary={text} />
              </ListItem>
            ))}
          </List>
        </Drawer>
  )
}
const mapStateToProps = state => ({
    categories: state.categories.categories
})
export default connect(mapStateToProps, {getCategories})(SideDrawer);
...