2017-11-12 10 views
0

쿼리 옵션을 사용하여 쿼리에 대한 동적 변수를 전달하지만 defaultProps으로 설정하면 graphql이 해당 소품 값을 선택할 수 없습니다. 아래GraphQL Apollo 쿼리 옵션이 defaultProps를 사용하지 않습니다

내 코드 : 소품 로그 아웃

Page.defaultProps = { 
    startDate: moment().hour(15).toISOString(), 
    endDate: moment().add(1).hour(3).toISOString(), 
}; 


export default compose(graphql(myQuery, { options: (props: IPageProps) => ({ variables: { range: { start: props.startDate, end: props.endDate }}}))(Page); 

더 나은 방법이있는 defaultProps 실제로 때 구성 요소의 하중을 포함시킬 시간을, 그리고 변수는 항상 { startDate: undefined, endDate: undefined }

될 것으로 보여 이걸 처리하는거야?

답변

1

그건 까다 롭습니다. 가장 쉬운 것은 단 두 번 디폴트를 선언하는 것입니다 :

const DEFAULT_START = moment().hour(15).toISOString() 
const DEFAULT_END = moment().add(1).hour(3).toISOString() 

Page.defaultProps = { 
    startDate: DEFAULT_START, 
    endDate: DEFAULT_END, 
} 

const options = ({ startDate: start = DEFAULT_START, endDate: end = DEFAULT_END }) => ({ variables: { range: { start, end } } }) 

export default compose(graphql(myQuery, { options })(Page); 

당신이 당신이 모두 defaultProps로 포함 건너 뛸 수있는 의미 이런 식으로하고, 쿼리의 startDate 또는 endDate 외부에서 참조 할 필요가없는 경우.

+0

이것은 실제로 의미가 있습니다. 다른 고차원 구성 요소로 구성 요소를 래핑하고 결국 소품을 전달했습니다. 그래도 좋은 제안! – tropicalfish