反应Native Touch事件响应非常慢

时间:2018-08-28 17:18:12

标签: reactjs react-native

我在React中创建了一个非常简单的第一个Native应用,但我的应用对诸如触摸之类的事件的响应速度非常慢

如建议的那样,我已经实现了几项功能,例如实现FlatList而不是映射等等。

我认为我可能做错的两件事是

中的状态更新
componentDidUpdate() {

var updateCoinData = [...this.props.cryptoLoaded];
 socket.on('trades', (tradeMsg) => {
  for (let i=0; i<updateCoinData.length; i++) {

    if (updateCoinData[i]["short"] == tradeMsg.coin ) {

    //Search for changed Crypto Value
    updateCoinData[i]["perc"] = tradeMsg["message"]["msg"]["perc"]
    updateCoinData[i]['mktcap'] = tradeMsg['message']['msg']["mktcap"]
    updateCoinData[i]['price'] = tradeMsg['message']['msg']['price']

    //Update the crypto Value state in Redux
    this.props.updateCrypto(updateCoinData);

      }
    }
 })

,或者在我的子组件中经常调用setState

如果有人想参考,这是我资料库的链接 https://github.com/irohitb/Crypto

这是大多数操作正在进行的两个文件

Child Repository

Parent Repository

我知道这个问题可能太多了,但是有人可以帮助我/建议我如何提高其性能。

1 个答案:

答案 0 :(得分:1)

存在“结构错误”,导致滥用滥用。与问题(性能)没有直接关系,但是可以有一些间接关系。

您正在本地处理状态/数据,而这是简化程序的职责

您应该从套接字数据准备有效负载,并分派redux操作/消息。 Reducer应该创建前一状态的副本(使用slice()复制数组,扩展运算符'...'很慢),搜索匹配的ID,对其进行更新并返回为新状态。 / p>

Reducer的主要思想是提取状态转换逻辑以进行简单测试。仅存储/接收现成数据集时可以测试什么?