>

일부 구성 요소로 구축 된 기존AngularJS (1.6)응용 프로그램이 있습니다. 응용 프로그램 자체는 일부 기존 및이미 기존 AngularJS 지시문의 쇼케이스입니다. UI에 인쇄하기 위해 일부 구성 요소 안에 구현했습니다.

최근에Redux를 배우고 있으며 (이것은 아직 처음입니다) 전체 프로젝트에서 올바른 redux 동작을 구현하고 싶습니다. 내가 이해하는 한, 모든 데이터가 변경 불가능하고일방적 바인딩단일 앱 상태가 있는데,이 구성 요소는 부모가 만든 이벤트를 사용합니다. 리듀서를 사용하여애플리케이션 상태를 다시 생성하고 그에 따라 데이터를 변경합니다.

이제 내 문제는이미 존재하는 지시문데이터 자체를 수정하고 이벤트를 트리거하지 않는 것입니다

예 :이 날짜 선택기 :

컨테이너 구성 요소에이 코드가 있습니다

<example-datepicker date="model.date"></example-datepicker>

Datepicker 구성 요소는이 컨트롤러 바인딩을 사용합니다

bindings: {
   date: '='
}

그리고이 템플릿은 문자 그대로 내가 언급 한 이전 지시문을 사용합니다

<date-picker date-model="model.date" name="dateForm"></date-picker>

지금, datepicker 지시문은날짜 선택기를 표시 할 책임이 있으며용도에 따라 날짜를 선택할 때마다모델을 변경합니다. 이제 응용 프로그램 상태에이 "날짜"문자열이 있다고 가정하십시오.불변이어야하는데 지시어가 변경하지 않아야합니까?

이 행동에 대해지시문을 적절히 변경해야합니까? 그렇지 않으면이벤트를 어떻게 트리거합니까? 구성 요소의$onChanges기능 사용에 대해 생각했지만양방향 바인딩이 필요합니다. 문자 그대로모델을 변경해야합니다.불변상태로 변경됩니다.

redux를 잘못 이해 했습니까, 아니면 사용하려는State>Component>Directive동작이 Redux에서가능하지 않습니다입니까?

미리 감사합니다

  • 답변 # 1

    먼저 커넥터를 사용하여 ng-redux를 사용해 볼 수 있다면, 몇 가지 사항을 단순화 할 수 있다고 생각하십시오. 그 외에도 아이디어는 지시문/컴포넌트에서 조치를 전달하여 상점을 업데이트해야하며 상점은 모든 리스너에게 변경 사항을 통지해야합니다 (redux에서 제공하는 subscribe 메소드를 사용할 수 있음).

    중요한 것 중 하나는 redux 저장소에 모든 데이터를 저장할 필요가 없다는 것입니다. 때로는 자체 데이터가 포함 된 지시문/구성 요소 (양방향 바인딩 데이터 일 수 있음)가 양식에보다 유연합니다. 이 경우 특정 장소에서 작업을 파견하면됩니다.

    $onChanges후크를 트리거해야하는 경우 구성 요소에 전달 된 객체에 대한 참조를 업데이트해야합니다

  • 이전 css - 재료 UI 선택 옵션이 선택 상자에 표시되지 않음
  • 다음 windows - 네트워크 공유에서 파일을 잠그는 사람 찾기