내가 redux
에 state
제대로 업데이트하는 방법을 잘 모르겠습니다 돌아 오는에 상태를 업데이트하는 방법 확실하지. 중복 된 항목이 있습니다. 내 감속기 중 하나입니다제대로
const STATE = {
windowOne: { ... }
windwoTwo: { ... }
windowThree: { ... }
}
이
export default function reducer(state = STATE, action) {
switch (action.type) {
case type.WINDOW_ONE: {
return {
...state,
windowOne: {
...state.windowOne,
foo: action.bar,
}
}
}
}
}
내 구성 요소
function mapDispatchToProps(dispatch) {
return bindActionCreators(combinedActions, dispatch);
}
const mapStateToProps = state => {
const { windowOne } = state.windowOne;
return {
windowOne,
};
}
export default connect(mapStateToProps, mapDispatchToProps)(SomeComponent);
그리고 I의 소품에 같은 상태를지도처럼 state
모양을
그게 전부 다양한 감속기를 여기에 결합하십시오
export default combineReducers({
windowOne,
windowTwo,
windowThree
});
redux-logger
을 사용하면 windowOne
에 전체 state
이 복사됩니다. 거기에서 action
을 트리거 한 후 windowTwo
과 windowThree
을 찾습니다. 나는 또한 내가하지 const { windowOne } = state
이 충분해야이 라인
const { windowOne } = state.windowOne;
에서 windowOne
을 지정해야하는 이유 확실하지 않다? 즉
흠, 전에 이런 식으로 했어. 그러나 나는'windowOne','windowTwo'와'windowThree' 사이에서 데이터를 교환해야하기 때문에 제가 작성한 코드로 변경했습니다. 내'감속기'를'STATE' 전체에 전달한 다음'windowOne' 부분 만 리턴한다고 생각했습니다. 그것은'state'를 갱신하고 새로 생성 된 데이터는 다른'reducer'에서 액세스 할 수 있습니다. 여기서'STATE'를 전달합니다. 'STATE.windowOne'을 사용하면 업데이트 된 데이터에 액세스 할 수 있어야합니다. – Stophface
'combineReducers'를 사용하면, 전체 상태를 건네주고 반환하면 각 최상위 상태 속성에 중첩 된 복사본이 생성됩니다. 당신은 아마 하나의 감속기를 사용하거나 같은 패키지를 사용하거나 할 것'줄일 - reducers'를, [너머 combineReducers]에서 설명한 바와 같이 (http://redux.js.org/docs/recipes/reducers/BeyondCombineReducers.html# slice-reducers 사이의 데이터 공유). – Oblosys