2017-09-16 1 views
0

내가 너무 같은 소품의 ID에 소요 구성 요소를 반응이 있다고?감속기의 리액터 구성 요소를 확인 하시겠습니까? 어떻게 내가 ID를 기반으로 일하고있는 구성 요소를 식별 할 수</p> <pre><code><Test id=3/> </code></pre> <p>를 해당 감속기 기능에서 :

테스트 구성 요소에는 해당 기능에 영향을 줄 경우 기본으로 내 보낸 일부 기능이 있습니다.

+0

'this.props.id'? – Dekel

+0

내가 뭔가를 놓치지 않으면 reducer는 'this'에 대한 참조를 가지고 있지 않습니까? – tweetypi

+0

감속기의 관련 코드를 추가하십시오. – Dekel

답변

1

Reducers는 구성 요소에 대해 전혀 모르고 있지 않습니다.
이들은 액션을 취하여 다음 상태를 반환하는 순수한 함수입니다. 예를 들어
, 우리는이 같은 작업을 파견하는 경우 : 구성 요소가 redux에 연결된 경우

const upvotesReducer = (state = {}, action) => { 
    switch (action.type) { 
     case "ANSWER_UPVOTED": { 
      const currentAnswer = state.find(a => a.id == action.id); 
      return { 
       ...currentAnswer, 
       votes: currentAnswer.numOfVotes + 1 
      } 
     } 

     default: return state; 
    } 
} 

이 지금은 새로운에 액세스 할 수 있습니다 :
{type: "ANSWER_UPVOTED", id: '123456'}
그런 다음 우리는이 작업을 처리하는 감속기를 가질 수를 상태.

+0

을 사용하면 동일한 감속기를 사용하는 모든 구성 요소간에 상태가 공유됩니까? – tweetypi

+0

'state'는 글로벌하지 않으며 'redux'에 연결된 각 구성 요소는 ** 전체 ** state에 액세스 할 수 있습니다. 축소 형 감속기를 '상태'의 일부분을 처리하도록 단순하게 유지하고 크기를 조정할 수 있지만 여전히 [combineReducers] (http : //redux.js. org/docs/api/combineReducers.html)) –

+1

맞아 맞아. 내가 감속기와 물건을 결합하면서했던 모든 재료는 내가 정말로 그것 뒤에 모든 하나의 상태가 있다는 것을 잊게했다. 나는 당신이 제공 한 대답으로 내 문제에 대한 해결책을 생각해 낼 수 있다고 생각합니다. – tweetypi

1

감속기는 매장을 변경하고 가입자 (구성 요소)의 변경 사항을 준수하기위한 순수한 기능입니다. 감속기의 구성 요소로 작업 할 수 없으며 작동하지 않아야합니다.

+0

일부 소품을 감속기에 전달하려면 동작 작성자 –