0

我正在尝试使用 algolia在 react 中的 Instantsearch 创建一个无限的siema轮播,但我认为连接器的行为不像 React 组件。我应该期望在此处调用 componentDidMount 吗?建议?想法?

class ActorsClass extends connectStateResults {

  constructor(props){
    super(props);
    var { searchState, searchResults } = props;
    this.hasResults = searchResults && searchResults.nbHits !== 0;
  }

  componentDidMount() {
    console.log("componentDidMount " + this.props.siema)
    this.siema = new Siema(this.props.siema);
  }

  prev = () => {
    this.siema.prev()
  };

  next = () => {
    this.siema.next()
  };

  render = () => {
    return (
        <div className="actors-container">
          <div xhidden={!this.hasResults}>
            <h1>Actors</h1>
            <InfiniteHits hitComponent={HitActors} />
          </div>
        <button onClick={this.prev}>Prev</button>
        <button onClick={this.next}>Next</button>
      </div>
    );
  }
4

1 回答 1

0

每当连接的组件收到新的道具时,它们就会被重新调用。这意味着您可以将componentDidUpdate钩子用于您的用例。

您可能有兴趣使用reselect。请参阅使用选择器的文档

于 2018-09-04T04:34:33.540 回答