facebook / facebook/relay

FlowType PropMissing for query fragments

Open
#3,474 1 comment 0 reactions 0 assignees View on GitHub
wontfix
Dominant language
Rust
Stars
19k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Description

I have these components setup: `RequestLayout > RequestComposer > RequestMessageOptions > LegalSenderDropdown`

RequestLayout.jsx:

```
const requestData = useFragment(
graphql`
fragment RequestLayout_request on TakedownRequest {
...RequestComposer_request
}
`,
requestFragment,
);

return ()
```

RequestComposer.jsx:

```
type Props = {|
request: RequestComposer_request$key,
|};

const RequestComposer = ({
request: requestFragment,
}: Props): Node => {
const request = useFragment(
graphql`
fragment RequestComposer_request on TakedownRequest {
...RequestComposer_counterNoticeModule @include(if: $counterNotice)
}
`,
requestFragment,
);

return ()
}
```

RequestMessageOptions.jsx just passed the request down to LegalSenderDropdown.jsx:

```
type Props = {|
request: RequestComposer_request,
|};

const LegalSenderDropdown = ({
request,
}: Props): Node => {

const originalRequest = request.counterNoticeModule?.originalRequest;

return null;
};
```

> Cannot get `request.counterNoticeModule` because property `counterNoticeModule` is missing in `RequestComposer_request` [1].Flow(prop-missing)
> LegalSenderDropdown.jsx(20, 3): [1] `RequestComposer_request`

When I look int othe RequestComposer_request type I get this generated by the compiler:

```export type RequestComposer_request = {|
+id: string,
+primaryType: ?TakedownRequestModuleType,
+owner: ?{|
+email: string
|},
+agent: ?{|
+email: string
|},
+$fragmentRefs: RequestComposer_counterNoticeModule$ref,
+$refType: RequestComposer_request$ref,
|};
export type RequestComposer_request$data = RequestComposer_request;
export type RequestComposer_request$key = {
+$data?: RequestComposer_request$data,
+$fragmentRefs: RequestComposer_request$ref,
...
};
```

![image](https://user-images.githubusercontent.com/5871660/116328075-e6c1e600-a763-11eb-9ef8-a1359af38767.png)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.