Должен ли componentDidMount запускаться из connectStateResults?

Я пытаюсь создать бесконечную карусель Siema, используя InstantSearch от Algolia в реакции, но я не думаю, что соединители ведут себя как компоненты 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 ответ

Всякий раз, когда подключенный компонент получает новые реквизиты, они повторно вызываются. Это означает, что вы можете использовать componentDidUpdate крючок для вашего случая использования.

Вам может быть интересно использовать реселект. Смотрите документы по использованию селектора.

Другие вопросы по тегам