React-如何强制调用props函数

时间:2020-03-23 18:56:59

标签: reactjs redux react-redux

我有一个通过props调用函数的Component

function mapState(state) {
  return state;
}

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

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

此函数在Component的构造函数中使用,以从我的API中检索内容并将响应存储到reducer中

  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键强制浏览器时,才能看到更改。

如何强制获取最新内容,我需要在哪里使用函数而不是构造函数?

我已经尝试过此解决方案: How to fetch data when a React component prop changes?

1 个答案:

答案 0 :(得分:0)

您错误地使用了redux。您应该传递正确的mapStateToPop。如果你想渲染。因为,您映射了整个状态。 Redux找不到任何更改。这就是为什么它不重新渲染。

示例:

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

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