componentDidMount应该从connectStateResults运行吗?

问题描述 投票:0回答:1

我正在尝试使用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>
    );
  }
reactjs algolia infinite-carousel instantsearch
1个回答
0
投票

只要连接的组件接收到新的道具,就会重新调用它们。这意味着你可以使用componentDidUpdate钩子作为你的用例。

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

© www.soinside.com 2019 - 2024. All rights reserved.