{dies ist Relay Moderne}Relay Moderne Fragmentdaten ist null
In meinem 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;
Also das ist die Wurzel des Userquery ist, wo die QueryRenderer genannt wird. Nun ist die Komponente .. userlist
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
}
}
`
)
Benutzerliste Fragment, das die Informationen für das Kind enthält userItem dh
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
}
`
)
Das Problem ist, wenn console.log (this.props.users) in userlist, es gibt Null . Und das Fragment userList = {}
Aber wenn ich es tun, ohne Fragmente zu verwenden, indem Sie einfach this.props.users aus der UserQuery-Komponente an die Kinder übergeben, funktioniert es gut.
Es wird großartig, wenn jemand createFragmentContainer mit einem besseren Beispiel erarbeiten kann. Dank ..
Ich habe genau das gleiche Problem und stecken. Eine Lösung gefunden? –