react-apollo
(v0.5.2)의 graphql
상위 구성 요소의 현재 버전을 사용하여 UI에 돌연변이가 있음을 알리는 문서화 된 방법이 없습니다 서버 응답을 기다리고 있습니다. earlier versions of the package은로드를 나타내는 속성을 보낼 것입니다. http://dev.apollodata.com/react/queries.html#default-result-props 내 응용 프로그램은 또한 REDUX을 사용react-apollo graphql을 사용하여 돌연변이 로딩 상태를 결정하는 방법
, 그래서 내가 할 수있는 한 가지 방법은 REDUX 내 구성 요소를 연결하고 넣어하는 함수 속성을 전달하는 것입니다 생각 : 여기에 설명 된대로
쿼리는 여전히 로딩 속성을받을 내 UI를 로딩 상태로 만듭니다. 그런 다음 graphql mutation을 속성에 다시 작성할 때 redux 저장소를 업데이트하도록 호출 할 수 있습니다. 대략 이런
뭔가 : 돌연변이 인 UI 알리는에 더 관용적 방법이 있다면 내가 궁금
function Form({ handleSubmit, loading, handleChange, value }) {
return (
<form onSubmit={handleSubmit}>
<input
name="something"
value={value}
onChange={handleChange}
disabled={loading}
/>
<button type="submit" disabled={loading}>
{loading ? 'Loading...' : 'Submit'}
</button>
</form>
);
}
const withSubmit = graphql(
gql`
mutation submit($something : String) {
submit(something : $something) {
id
something
}
}
`,
{
props: ({ ownProps, mutate }) => ({
async handleSubmit() {
ownProps.setLoading(true);
try {
const result = await mutate();
} catch (err) {
// @todo handle error here
}
ownProps.setLoading(false);
},
}),
}
);
const withLoading = connect(
(state) => ({ loading: state.loading }),
(dispatch) => ({
setLoading(loading) {
dispatch(loadingAction(loading));
},
})
);
export default withLoading(withSubmit(Form));
"기내가." 감사.
동일한 질문 (* redux + apollo 클라이언트 : 돌연변이로드 상태 *)을 자신에게 질문하십시오. 요즘 (* 몇 주 후 *) 나는 그것에 대해 더 이상 단서를 찾지 못했습니다. 나는 여전히 당신과 같은 접근법을 사용합니다 ... – MacKentoch
돌연변이는 구성 요소 자체 내에서 호출됩니다. mutation을 실행하기 전에 커스텀 로딩 상태를 true로 설정하는 것에 대해, 그리고 mutation이 false로 다시 설정 한 후에 무엇을 말하는가? – marktani
감사합니다, @marktani. 네,이 일을하는 것이 좋습니다. react-apollo를 사용하면 쿼리가 기내에있을 때 쿼리가 자동으로로드 속성을 설정하므로 변이에 대해 동일한 작업을 수행 할 수있는 기본 제공 방법이 누락되지 않았는지 확인하려고했습니다. – rmarscher