Я использую Relay Modern для создания своего компонента и хочу передать переменную во фрагмент, чтобы ее можно было использовать в качестве аргумента GraphQL в моем запросе.
Вот код, который я использую:
class Test extends Component {
static propTypes = {
userId: PropTypes.string.isRequired
}
render = () => {
return (
<p>User Id: {this.props.userId}</p>
<p>User name: {this.props.viewer.name}
);
}
}
export default createFragmentContainer(
Test,
graphql`
fragment Test_viewer on Viewer {
user(id: $userId) { <<=== The $userId must be the this.props.userId passed
id
name
}
}
`
);
При выдаче запроса сервер GraphQL возвращает ошибку Variable \"$userId\" is not defined by operation \"UserQuery\"."
.
Мой запрос в родительском компоненте:
const UserQuery = graphql`
query AdminQuery {
viewer {
...Test_viewer
}
}
`
Как я могу заставить код выше работать?