Я пытаюсь получить название категории в 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);