2017-11-29 41 views
0

I 함수를 호출하는 반작용 성분을, 난 주입 mobx 저장소를 통과해야하고, 컴포넌트는이 같은 기능에 사용되는패스 mobx 저장소와 소품의 기능이

const Component = inject("store")(observer(({store, props}) => { 
    return (
     <div> 
      {_someRenderFunction(store, props)} 
     </div> 
    ); 
})); 

이 함수에 소품

function _someRenderFunction(store, props) { 
    let data = store.data; 
    const { cookies } = props; 
    ... 
} 

하지만 난 Cannot read property 'cookies' of undefined

어떻게 내가 _someRenderFunction에 저장 및 구성 요소 소품 모두를 전달할 수있는 오류를 얻을?

({store, props}) => {}; 

구성 요소는 수신하므로 기본 정의가 될 것이다 소품 :

(props) => {} 

를 주입 주어진 소품 안에 당신에게 당신의 주입 저장소를 제공

답변

2

문제는이 라인입니다. 그래서 당신이받는 것은 :

const props = { store: STORE_INSTANCE } 

당신은 소품에서 속성을 추출 할 수 있습니다 파멸의 대상으로. 그러면 다음과 같이 작동합니다.

({ store }) => {} 

여기에서 소품에서 속성 저장소를 추출합니다. 그러나 당신의 예제에서 당신은 또한 소도시로부터 속성 소품을 추출하고 있습니다. 따라서 소품의 모양은 다음과 같습니다.

const props = { store: STORE_INSTANCE, props: PROPS_OBJECT } 

이것은 원하는 것이 아닙니다. 그래서 객체 파괴는이 경우에 당신이 원하는 것이 아닙니다. 다음 코드가 작동해야합니다.

const Component = inject("store")(observer((props) => { 
    return (
     <div> 
      {_someRenderFunction(props)} 
     </div> 
    ); 
})); 

function _someRenderFunction(props) { 
    const { cookies, store } = props; 
    let data = store.data; 
    ... 
}