2017-03-29 2 views
0

저는 seamless-immutable 및 redux로 작업 중이며 상태를 업데이트 할 때 이상한 오류가 발생합니다. 여기에 내 코드가 있는데, 액션 리턴이나 combineReducers 같은 비트는 없다. 오류를 일으키는/실행중인 쓰레기. 썽크와끊김없는 불변의 상태가 지속적으로 업데이트되지 않습니다.

초기 상태

{ 
    things: { 
    fetching: false, 
    rows: [] 
    } 
} 

액션 핸들러

export default { 
    [DEALERS_REQUEST]: (state, action) => { 
    return Immutable({ ...state, fetching: true }); 
    }, 
    [DEALERS_RECEIVE]: (state, action) => { 
    return Immutable({ ...state, rows: action.payload, fetching: false }); 
}, 

미들웨어

export const thingsFetch = (data) => { 
    return (dispatch, getState) => { 
    dispatch(thingsRequest()); 
    dispatch(thingsReceive(data)); 
    } 
} 

지금 이상하게도,이 두 가지 행동을 함께하면 모든 것이 잘됩니다.

thingsRequest() 만 파견하는 경우 "불변의 개체로 푸시 할 수 없습니다"오류가 발생합니다.

나는 set, update, replace, merge와 같은 메서드를 사용 해봤지만 일반적으로 "this.merge는 함수가 아닙니다"와 함께 반환됩니다.

나는 절차 적으로 뭔가 잘못하고 있습니까? 아니면 문제를보고하기 위해 모듈 dev에 문의해야합니까?

답변

0

이 문제는 빈 배열의 경우 구성 요소가 자체 오류 메시지와 함께 변경 불가능 개체에 다시 쓰려고 시도한다는 것을 의미합니다.

이 문제를 해결하기 위해 소품을 변경할 수있는 것으로 전달합니다. 상태에 불변성을 유지하면서 변경 가능한 소품을 구성 요소에 전달하기 위해 모든 앱에 대한 기존의 연결 기능을 대체하는 일부 저가형 변경 불가능한 모듈도 있습니다.

관련 문제