Javascript 我可以基于props参数将组件连接到存储中的特定节点吗?

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

我的redux商店如下所示:

"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获取组件后,立即过滤组件可能没有什么区别。