Javascript 我可以基于props参数将组件连接到存储中的特定节点吗?
我的redux商店如下所示:Javascript 我可以基于props参数将组件连接到存储中的特定节点吗?,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我的redux商店如下所示: "products":[ { "product-id":"P1", "product-name":"Computer" }, { "product-id":"P2", "product-name":"Monitor" }, { "product-id":"P3", "product-name":"Keyboard" }, { "product-id":"P4", "produ
"products":[
{
"product-id":"P1",
"product-name":"Computer"
},
{
"product-id":"P2",
"product-name":"Monitor"
},
{
"product-id":"P3",
"product-name":"Keyboard"
},
{
"product-id":"P4",
"product-name":"Mouse"
}
]
function mapStateToProps(state, ownProps) {
const { products } = state
const { product_id } = ownProps
const filteredProduct = products.find(({product-id}) => product-id ===product_id)
return { filteredProduct }
}
现在我有了一个组件,它将产品ID作为道具。是否有方法将状态映射到基于产品ID的道具?例如:如果props.product_id=“P2”,那么我只想映射到“产品id”:“P2”节点到组件props
当我们使用connect()连接整个商店时,我可能会弄错这一点,但我希望保持MapStateTops的精简(不确定这是否合理)
谢谢 您可以拥有Props,这是mapStateToProps(参考:)中的可选参数 然后,您的代码将如下所示:
"products":[
{
"product-id":"P1",
"product-name":"Computer"
},
{
"product-id":"P2",
"product-name":"Monitor"
},
{
"product-id":"P3",
"product-name":"Keyboard"
},
{
"product-id":"P4",
"product-name":"Mouse"
}
]
function mapStateToProps(state, ownProps) {
const { products } = state
const { product_id } = ownProps
const filteredProduct = products.find(({product-id}) => product-id ===product_id)
return { filteredProduct }
}
由于某种原因,您将所有数据存储在redux中。从redux获取组件后,立即过滤组件可能没有什么区别。