0
체크 박스가있는 테이블이 있습니다. 사용자가 확인란을 선택하면 ID가 작업 작성자에게 전송됩니다.Redux/State에서 데이터를 추가/제거하기 Lodash를 사용하여
Component.js
handlePersonSelect({ id }, event) {
const { selectPerson, deselectPerson } = this.props;
event.target.checked ? selectPerson(id) : deselectPerson(id);
}
내가 잃었어요하는이 단계까지 모든 길을 갈 수 있어요
export function selectPerson(id) {
console.log("selected")
return {
type: SELECT_PERSON,
payload: id
};
}
export function deselectPerson(id) {
return {
type: DESELECT_PERSON,
payload: id
};
}
action.js : 이것은 잘못된 것입니다 코드 :
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;
}
selectedPeople 상태는 각 사례에 따라 ID를 더하거나 뺍니다. 현재 ID를 선택 취소 할 때마다 전체 "사람"테이블이 사라집니다.
export default function(state = INITIAL_STATE, action) {
switch (action.type) {
case FETCH_PEOPLE:
return {...state, people: action.payload.data};
case SELECT_PERSON:
return {...state, selectedPeople: [ ...state.selectedPeople, action.payload]};
case DESELECT_PERSON:
return {...state, selectedPeople: _.without(state.selectedPeople, action.payload)};
default
return state;
}
}
은 또한 당신이 DESELECT_PERSON
조치를하지 않았다주의, 대신 2 SELECT_PERSON
행동 :
감사합니다. 그건 내가 시도해 오타되었습니다 – lost9123193
_without 대신 _.outout 사용하고 그것을 작동했습니다, 감사합니다! – lost9123193
죄송합니다. 오타되었습니다 ... – DDS