Реагировать - Как я могу вызвать функцию реквизита - PullRequest
0 голосов
/ 23 марта 2020

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

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 Ответ

0 голосов
/ 23 марта 2020

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

Образец:

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

export default connect(mapState, actionCreators)(ShopBook);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...