https://facebook.com/groups/graphql-kr logo
#질문
Title
# 질문
t

Tony Won

10/06/2020, 12:42 PM
특정 Post를 작성(create)하기전에 미리보기 화면을 보여주려고 하는데요. 해당 포스트를 구성하는 컴포넌트가 Fragment로 아주 이쁘게... 구성되어있는데, Relay에서 Graph를 건드리는건 왠지 불안하고, 컴포넌트를 푸는건 또 안이쁘고 하네요 ㅠ 좋은 방법 있을까요?
h

Hyeseong Kim

10/06/2020, 12:47 PM
state 요 ㅎㅎ
t

Tony Won

10/06/2020, 12:48 PM
h

Hyeseong Kim

10/06/2020, 12:48 PM
아뇨 그냥 쌩스테이트
아 뭐 스코프가 어느정도 있는 친구인가요?
말씀해주신 요구사항만 놓고 보면 맥락이 주변으로 갈 일은 아무래도 보통 없을거같긴 한데
t

Tony Won

10/06/2020, 12:50 PM
음 fragment랑 colocation되어있는 컴포넌트를
props만 바꿔서 재사용할수있나요??
relay-hooks가 문제인가...
h

Hyeseong Kim

10/06/2020, 12:57 PM
props 만 바꿔서라는게...
t

Tony Won

10/06/2020, 12:59 PM
음 예를들면, 글 콘텐츠를 담는 컴포넌트가 있고, useFragment를 안에서 쓰는데요. 그 컴포넌트를 미리보기에서 쓰려면 어떻게하는게 좋을지? 에요 ㅋㅋ
h

Hyeseong Kim

10/06/2020, 1:02 PM
제가 생각한건 그냥
Copy code
const data = useFragment(..., <http://props.post|props.post>);

// 가상의 폼 상태
const post = useForm({
  init: <http://data.post|data.post>,
});
const optimisticResponse = opt_response_from_input(post);
const updatePostMutation = useMutation(...);

const handleSubmit = () => {
  updatePostMutation.commit({
    variables: post,
    optimisticResponse,
  });
}

<Form onSumit={handleSubmit}>
  <PostInput post={post} />
  <Preview post={optimisticResponse} />
</Form>
뭐 간단한 CRUD라 치면 얼추 이런식일까요
일단 input 상태는 apollo 처럼 배치처리할 거 아닌 이상 굳이 relay store 랑 연관될 이유는 없을 것 같고, 커밋만 잘 신경써주면 되지 않나요?
Apollo 같은 경우는 뭐
@exports
디렉티브 같은거 쓰려고 일부로 스토어에 우겨넣는 경우가 종종 있긴 한데
그 컴포넌트를 미리보기에서 쓰려면 어떻게하는게 좋을지?
이건 그냥 컴포넌트 잘 나누면 해결될 것 같아요. 그냥 상태없는 컴포넌트 하나 두고 props을 다른걸 주는식으로 간단하게 조합하시면...
👌 1
t

Tony Won

10/06/2020, 2:58 PM
제가 니즈가 있는건 아니고 동료 니즈라서 ㅋㅋㅋ 한번 해봐야겠네요 ㅋㅋ