Реагировать - Как я могу вызвать функцию реквизита

У меня есть компонент, который вызывает функцию через реквизит

function mapState(state) {
  return state;
}

const actionCreators = {
  getById: productActions.getById,
};

export default connect(mapState, actionCreators)(ShopBook);

эта функция используется в конструкторе компонента для извлечения содержимого из моего API и сохранения ответа в редуктор

  constructor(props) {
    super(props);

    this.props.getById(this.props.match.params.slug)

    this.state = {
    }
  }

затем в рендере я использую магазин

  render() {

    const product = store.getState().product.item

    return (
       // my code
    );
 }

Моя проблема заключается в том, что если я изменяю содержимое в базе данных, функция не извлекает последние изменения через API, я вижу изменения только в том случае, если принудительно запустить браузер, нажав клавишу Shift при перезагрузке с щелчком.

Как я могу заставить получить последний контент, где мне нужно использовать функцию вместо конструктора?

Я уже пробовал это решение: как получить данные, когда изменяется компонент React?

Всего 1 ответ


Вы используете неверно. Вы должны передать правильный mapStateToPop. Если вы хотите сделать. Так как вы наносите на карту все состояние. Redux не находит изменений. Вот почему это не рендеринг.

Образец:

const mapStateToProps = (state, ownProps) => ({
  product: state.product
})

export default connect(mapState, actionCreators)(ShopBook);