Wenn ich versuche, eine Variable festzulegen, wird die Komponente erst aktualisiert, wenn der Abruf abgeschlossen ist. Hier ist ein Beispielcode.Relais reagieren pendingVariables immer null nach setVariables
class RelayExample extends React.Component {
setVars() {
this.props.relay.setVariables({id: '2'});
};
render() {
console.log(this.props.relay.pendingVariables);
return (
<div>
<button onClick={this.setVars.bind(this)}>set variable</button>
</div>
);
}
}
RelayExample = Relay.createContainer(RelayExample, {
initialVariables: {
id: '1'
},
fragments: {
userStore:()=> {
return Relay.QL`
fragment on userStore {
user(id:$id){
email
}
}
`;
}
}
});
ReactDOM.render(
<Relay.RootContainer Component={RelayExample} route={new TestQuery()}/>,
document.getElementById('app')
);
Wenn ich die Taste drücken, bekomme ich dieses Ergebnis in der Konsole:
Auch wenn ich Forceupdate verwende direkt nach der setVariables Funktion, i ähnliches Ergebnis erhalten.
setVars() {
this.props.relay.setVariables({id: '2'});
this.forceUpdate();
};
Die Umgebung ist Relay.Store –