2

次の QueryRenderer コンポーネントがあるとします。

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,
};

私が抱えている問題はrenderProjectList、自分のselectedProject小道具が値を変更したときに再度実行されないことです。メソッドはrender明らかにトリガーされますが、いずれの小道具もQueryRenderer変更されrenderProjectListていないため、どちらも呼び出されません。

これを処理するための最良のアプローチは何ですか?

4

2 に答える 2