меня ниже действий и редуктора:Написать действие и редуктор эффективные и экологически чистые (реагирует Redux)
действие:
import { OPEN_NODE, CLOSE_NODE, GET_NODES } from '../constants/NodeActionTypes';
export function openNode(path) {
return {
type: OPEN_NODE,
path: path
};
}
export function closeNode() {
return {
type: CLOSE_NODE
};
}
export function getNodes(path) {
return {
type: GET_NODES,
path: path
};
}
редуктор:
export default function opener(state = initialState, action) {
switch (action.type) {
case OPEN_NODE:
var { path } = action
var {nodes} = getFileList(path)
return {
...state,
open:true,
nodes:nodes
};
case CLOSE_NODE:
return {
...state,
open:false
};
case GET_NODES:
var { path } = action
var {nodes} = getFileList(path)
return {
...state,
nodes:nodes
};
default:
return state;
}
}
Очевидно, OPEN_NODE
содержат GET_NODES
(только плюс open:true
), но существует много способов организовать код:
pack
GET_NODES
редуктор к функции, позвоните по телефонуOPEN_NODE
и добавьтеopen:true
.изменить
openNode
действие, отправить[OPEN_NODE, GET_NODES]
вместе, но как написатьswitch(action.type)
's case?позволяют
OPEN_NODE
редуктор направитьgetNodes
действие, чтобы вызватьGET_NODES
редуктор
, который лучше всего? Или любой другой лучший способ?
вы, по сути вопросом, как составить свой редуктор. Позвольте мне указать вам в правильном направлении: https://egghead.io/courses/getting-started-with-redux. понимание этого курса может помочь во всех четырех вопросах вашего редукта. – xiaofan2406