应该从connectStateResults运行componentDidMount吗?

时间:2018-09-04 04:29:15

标签: reactjs algolia infinite-carousel instantsearch

我正在尝试使用algolia的siema创建一个无限的instantsearch in react轮播,但我不认为连接器的行为类似于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>
    );
  }

1 个答案:

答案 0 :(得分:0)

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

您可能有兴趣使用reselect。有关使用选择器的信息,请参见docs