微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 connect(mapStateToProps, mapDispatchToProps) 上反应本机应用程序性能

如何解决在 connect(mapStateToProps, mapDispatchToProps) 上反应本机应用程序性能

我正在创建带有 redux 状态管理的 React Native 应用程序。我想知道使用 connect(mapStatetoProps,mapdispatchToProps) 的最佳做法是什么。

我有几个组件类,即 ParentA、ChildA、ChildB。目前我正在独立获取每个父类和子类的状态属性

例如:

const ParentA = (props) => {
  return (
    <View>
      <Text>{props.item.name}</Text>
      <ChildA />
      <ChildB />
    </View>
  )
}

const mapStatetoProps = (state) => {
  const { item } = state

  return {
    item: item.item,}
}

export default connect(mapStatetoProps)(ParentA)
const ChildA = (props) => {
  return (
    <View>
      <Text>{props.item.name}</Text>
    </View>
  )
}

const mapStatetoProps = (state) => {
  const { item } = state

  return {
    item: item.item,}
}

export default connect(mapStatetoProps)(ChildA)
const ChildB = (props) => {
  return (
    <View>
      <Text>{props.item.age}</Text>
    </View>
  )
}

const mapStatetoProps = (state) => {
  const { item } = state

  return {
    item: item.item,}
}

export default connect(mapStatetoProps)(ChildB)

而是为每个子组件设置 connect,我可以从 item 获取 ParentA 状态并将其传递给 Child 组件。

例如:

const ParentA = (props) => {
  return (
    <View>
      <Text>{props.item.name}</Text>
      <ChildA item={item}/>
      <ChildB item={item}/>
    </View>
  )
}

const mapStatetoProps = (state) => {
  const { item } = state

  return {
    item: item.item,}
}

export default ChildA
const ChildB = (props) => {
  return (
    <View>
      <Text>{props.item.age}</Text>
    </View>
  )
}

const mapStatetoProps = (state) => {
  const { item } = state

  return {
    item: item.item,}
}

export default ChildB

我的问题是,

  1. 考虑应用性能的最佳方法是什么?
  2. 我也可以对 mapdispatchToProps 使用相同的方法吗?

解决方法

是的,您可以使用 useSelector,useDispatch 但问题是您应该使用钩子。使用这种方法可以解决应用性能问题。

,

我认为与其使用“const”,不如尝试另一种数据类型,例如“var”或“let”,因为“const”值一旦固定就无法更改。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。