2016-08-23 4 views
0

React Redux 프레임 워크를 사용하여 엔지니어링 애플리케이션을 작성하는 동안로드 용량 및 기타 속성을 산출하는 기능을 가진 제품 데이터베이스가있는 문제가 발생했습니다. 저장소에 함수를로드하고 감속기의 다른 위치에서 함수를 검색하는 것이 좋은 아이디어가 아니라는 것을 알고 있습니다. 감속기가 순도를 떨어 뜨리고 감속기를 테스트하기가 훨씬 어려워집니다.수식을 함수로 사용하는 Redux 스토어

감속기를 매개 변수로 또는 유사한 방식으로 감속기에 공급하고 그 감속기를 상점에 넣거나 순도를 떨어 뜨리지 않고 공급하는 방법은 무엇입니까?

편집 :

제품의 각각은, 예를 들어 잭 확장 및 부하 용량 사이의 관계를 설명 할 수 기능을 가지고 있습니다. 이 관계는 대개 비선형 적이며 확장 가능한 범위에 대한 용량과 관련된 그래프가 있습니다. 커브 피팅 도구를 사용하여이 그래프를 해당 범위의 함수와 일치시킵니다. 저는 누군가가 제품과 확장 물을 선택할 때 용량을 얻고 그 주에서 계산 된 다른로드에 대한 적합성을 검사 할 수 있도록 감속기에서 이러한 기능을 사용할 수 있기를 원합니다.

+0

유스 케이스의 세부 사항을 설명해 주시겠습니까? 일반적인 도우미 기능이 있다면 나는 "단일 소스"라고 생각합니다. 그러나 모든 데이터베이스 레코드에 고유 한 기능이 있으면 좋은 생각이 아닙니다. – darkbaby123

답변

1

몇 가지 생각 : 같은 행동이나 상점 상태에서 기능과 같은 비 직렬화 항목을 포함

  • 예는, 확실히 그것은 일반적으로 시간 여행 디버깅을 깰 것이라는 이유로, 좋습니다. 이 문제가되지 않는다면 입니다. http://redux.js.org/docs/FAQ.html#organizing-state-non-serializablehttp://redux.js.org/docs/FAQ.html#actions-string-constants을 참조하십시오.
  • 또 다른 접근법은 룩업 테이블에 수학 함수를 유지하고 감속기에서 사용할 올바른 수학 함수를 찾는 데 사용할 수있는 함수 이름을 포함하는 것입니다.
  • 세 번째 옵션은 썽크 액션 크리에이터에서 더 많은 작업을 수행하고 계산 결과를 액션에 적용합니다.
+0

현재 옵션 2를 고려하고 있습니다. 나는 감속기를 불결하게 만들 때 처음에는 주저했지만, 감속기에 함수 데이터베이스를 카레로 작성하면 여전히 테스트 가능하고 불순한 것이 아니라는 사실을 깨달았습니까? 'createStore (reducerWithDatabase (productDatabase))'와 같은 것. 'var reducerWithDatabase = (productDatabase) => (state, action) => state' – Adam

+0

그렇게하는 방법 중 하나입니다. 즉, 감속기 기능이 프로세스의 일부로 다른 기능을 호출한다고해도 그 기능이 순수하고 부작용이없는 한 "불순한"것은 아닙니다. 수학 함수는 순수한 함수로 보일 수 있으므로 작업을 수행하도록 호출하는 것이 좋습니다. – markerikson

관련 문제