如何确保触发状态更改并将其捕获到组件中?
我的应用程序有一个动作,它是在过滤器组件中单击时触发的 . 此过滤器执行搜索并返回新产品(基于过滤器) .
该操作有效并使用React Chrome扩展程序,我可以看到产品的全局状态发生变化 . 但是我无法在我的shopComponent中获取新状态,这将根据新产品状态更改显示的产品.. :(
class shopProduct extends Component {
constructor(props) {
super(props);
this.state = {...localStateItems }
}
render() {
if(this.props.products != undefined) {
console.log('not undefined: ', this.props.products);
// NOTHING IS SHOWING
}
console.log('shopProducts Render: ', this.props);
// NOTHING IS SHOWING
return (
...Some new products
)
}
}
const mapStateToProps = (state, ownProps) => ({
cart: state.cart,
products: state.products
});
shopProduct.propTypes = {
productSearch: PropTypes.func.isRequired,
products: PropTypes.object
};
export default connect(mapStateToProps, { productSearch, products })(shopProduct);
我是否正确地将其映射到shopProduct组件?
2 回答
我想你误解了传递给
connect
的第二个参数应该是什么 . 根据the docs它应该mapDispatchToProps . 您试图传递propTypes,这不是第二个参数所期望的 . 您可能想阅读what mapDispatchToProps is for .好 . 所以它没有呈现的原因是我们使用 immutable JS .
所以对于有问题的其他人 . 检查您的应用是否正在使用该应用 .
只需用
state.get('objectName')
引用该对象对:
错误: