{this is Relay Modern}
In my UserQuery.js,
class UserQuery extends Component { render () { return ( <QueryRenderer environment={environment} query={GetAllUsers} render={({err, props}) => { if(props){ return <UserList /> } return <Text>Loading...</Text> } }/> ) } } export default UserQuery;
So this is the root of UserQuery where the QueryRenderer is called. Now the userList component ..
class UserList extends Component { render () { const users = this.props.users return ( <View> {this.renderUsers(users)} </View> ) } renderUsers(users) { if(!users) { return <Text>No Users</Text> } return users.edges.map(user=>{ return <UserItem user={user}/> }) } } module.exports = createFragmentContainer( UserList, graphql` fragment userList_users on userEdges { node { ...userItem_user } } ` )
A fragment of the user list contains information for the child user userItem ie
class UserItem extends React.Component { render() { const user = this.props.user; return ( <View> <Text>{user}</Text> </View> ) } } module.exports = createFragmentContainer( UserItem, graphql` fragment userItem_user on User { username } ` )
The problem is that console.log (this.props.users) in userList, it returns Null. And fragment userList = {}
But when I do this without using fragments, just passing this.props.users from the UserQuery component for children, it works fine.
It will be great if anyone can develop createFragmentContainer with a better example. Thanks..
reactjs react-native relayjs
Saud punjwani
source share