2016-07-25 15 views
0

최근에 반응 형 redux 아키텍처로 작업하기 시작했습니다. 성공적인 작업 후에 일부 필드를 정리하고 싶습니다. 나는 반응 - redux 방법을 사용하여 그것을하는 방법을 알고 있지만 궁금 해서요 : 일반 자바 스크립트를 사용하여 이러한 필드를 청소하는 것은 나쁜 습관으로 간주됩니까? 나는 그것이 타임 머신에 영향을 미친다는 것을 안다. 그러나 이것을 보존하기위한 중요한 상태라고 생각하지 않는다.React-Redux로 작업 할 때 직접 DOM에 액세스

장황한 답변이 아니라 장단점이 있습니다.

그리고 예 :

<input type="text" onChange={this.onChange}/> 

나는 OnChange 이벤트와 부모의 개인 필드를 업데이트합니다. 입력란의 값 필드에 개인 필드를 바인딩 할 수 있다는 것을 알고 있지만 그 필요성은 필드를 지우는 것이므로 필자는이를 피할 수 있다고 생각합니다.

미리 감사드립니다.

+0

"반응 감소 형 방식"이라고 생각하는 예를 보여줄 수 있습니까? – Aaron

+0

내 질문 편집. 뭔가 다른 것이 없다면 알려주세요. 감사! –

+0

입력 필드를 지울 수 있지만 사용할 필요가없는 React 메커니즘을 알고 있다면 왜 React를 사용하고 있습니까? – Brandon

답변

1

구성 요소에 중요하지 않은 상태를 저장하는 것은 Redux 규칙에 위배되지 않습니다. 단지 일들의 일관성과 예측 가능성을 떨어 뜨립니다. 장기적으로 구성 요소 트리에있는 상태의 작은 비트를 후회할 수 있습니다.

그러나 예제에서는 텍스트 값을 다시 설정하기 위해 DOM을 참조 할 필요가 없습니다. 텍스트 값을 비공개 필드에 이미 저장 했으므로 해당 필드를 상태로 저장하지 않으시겠습니까?

<input type="text" value={this.state.text} onChange={this.onChange} /> 

그런 다음 재설정하려면 setState({text: ""}) 일 수 있습니다.

+0

isStnt는 상태가 변경 불가능해야하므로 규칙을 거부합니다? 또는이 예제를 직접 DOM 액세스보다 나은 접근 방식으로 제공 했습니까? –

+0

Redux를 사용한다고해서 결코'setState'를 사용해서는 안된다는 의미는 아닙니다. 단지 당신이 그 상태에 대해 Redux를 사용하고 있지 않다는 것을 의미합니다. 그리고 당신은 이미 비공개 필드에 상태를 저장하고 있기 때문에 이미 Redux를 사용하고 있지 않습니다.). Redux는 * 모든 * 상태를 Redux 상점에 저장해야한다고 지시하지 않습니다. 차이점을 이해해야 만합니다. – Aaron

+0

위대한 답변입니다! 감사! –

관련 문제