Angesichts der folgenden QueryRenderer Komponente: wenn meine eigene selectedProject
prop ändert WertWie übergeben Sie benutzerdefinierte Requisiten in die QueryRenderer-Renderfunktion?
class ProjectQueryRenderer extends Component {
constructor(props) {
super(props);
this.renderProjectList = this.renderProjectList.bind(this);
}
renderProjectList({ error, props }) {
if (props) {
return (
<ProjectList
connection={props.viewer.allProjects}
onSelectProject={this.props.onSelectProject}
selectedProject={this.props.selectedProject}
/>
);
}
}
render() {
return (
<QueryRenderer
environment={environment}
query={ProjectsQuery}
render={this.renderProjectList}
/>
);
}
}
ProjectQueryRenderer.propTypes = {
onSelectProject: Proptypes.func.isRequired,
selectedProject: Proptypes.string.isRequired,
};
Das Problem, das ich habe ist, dass renderProjectList
nicht wieder ausgeführt wird. Die render
Methode wird offensichtlich ausgelöst, aber da keine der Requisiten von QueryRenderer
geändert wird, wird auch renderProjectList
nicht aufgerufen.
Was ist der beste Ansatz, um damit umzugehen?
nicht sicher, ob ich das richtig verstehe dies. Das obige Beispiel gibt einen 'Uncaught TypeError: this.props.render ist keine Funktion' Fehler. – nickdecooman
Ich habe den Prop-Namen "render" in "Komponente" geändert, aber es liegt an Ihnen, einen passenden Namen dafür zu finden. Vielleicht ist meine Lösung nicht ganz das, wonach du suchst. Ich sehe es wieder und ich arbeite. Ist "ProjectList" von Eigenschaften abhängig, die sowohl von "ProjectQueryRenderer" als auch von "QueryRenderer" stammen? Wenn ja, gibt es eine andere Lösung für dieses Problem. – aherriot