Container ListRegisteredProducts
使用:
TableView
const mapStateToProps = state => {
return {
products: state.products
}
}
连接函数如下所示:
const ListRegisteredProducts = connect(
mapStateToProps,
mapDispatchToProps
)(TableView)
但是当我去构建道具时:
const TableView = ({products}) => (
...
TableView.propTypes = {
products: PropTypes.arrayOf(
PropTypes.shape({
id: PropTypes.number.isRequired,
name: PropTypes.string.isRequired
})
)
}
我收到一个错误,说产品不是数组,而是对象。
编辑:当我在TableView的参数中记录我已经解构的products
时,我看到了我的应用的整个状态:
{isFetching: false, products: Array(0)}
答案 0 :(得分:0)
根据products
的定义,它是一个对象数组。
从这个定义React做 typechecking 。
products: PropTypes.arrayOf(
PropTypes.shape({
id: PropTypes.number.isRequired,
name: PropTypes.string.isRequired
})
);
但是看起来你正在从products
传递mapStateToProps
是对象的类型。
答案 1 :(得分:0)
i