Ich habe eine Tabelle mit Kontrollkästchen. Wenn ein Benutzer ein Kontrollkästchen auswählt, wird die ID an einen Aktionsersteller gesendet.Daten hinzufügen/entfernen in Redux/Reagieren mit Lodash
Component.js
handlePersonSelect({ id }, event) {
const { selectPerson, deselectPerson } = this.props;
event.target.checked ? selectPerson(id) : deselectPerson(id);
}
action.js
export function selectPerson(id) {
console.log("selected")
return {
type: SELECT_PERSON,
payload: id
};
}
export function deselectPerson(id) {
return {
type: DESELECT_PERSON,
payload: id
};
}
Ich bin in der Lage den ganzen Weg zu gehen, bis zu diesem Schritt, an dem ich bin verloren: Dies ist der säumige code:
import {
SELECT_PERSON,
DESELECT_PERSON,
FETCH_PEOPLE
} from '../actions/types';
const INITIAL_STATE = { people:[], selectedPeople:[]};
export default function(state = INITIAL_STATE, action) {
switch (action.type) {
case FETCH_PEOPLE:
return {...state, people: action.payload.data};
case SELECT_PERSON:
return [action.payload, ...state ];
case DESELECT_PERSON:
return _.without({state, selectedPeople:action.payload});
}
return state;
}
Der selectedPeople-Status sollte die IDs basierend auf jedem Fall addieren/subtrahieren. Jedes Mal, wenn ich die ID abnehme, verschwindet mein gesamter "People" -Tisch.
danke! das war ein Tippfehler Ich werde das ausprobieren – lost9123193
Ich habe _.without anstatt _without benutzt und es hat funktioniert, danke! – lost9123193
Sorry, das war ein Tippfehler ... – DDS