我有一个通过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?
答案 0 :(得分:0)
您错误地使用了redux。您应该传递正确的mapStateToPop。如果你想渲染。因为,您映射了整个状态。 Redux找不到任何更改。这就是为什么它不重新渲染。
示例:
const mapStateToProps = (state, ownProps) => ({
product: state.product
})
export default connect(mapState, actionCreators)(ShopBook);