无法在React Native应用中使用React.memo

时间:2018-11-17 14:08:54

标签: reactjs react-native

我想使用React.memo在react native中进行优化。

import React from "react";
import { View, Text } from "react-native";

const Memo = React.memo(function() {
  return (
    <View>
      <Text>Ok</Text>
    </View>
  );
});
class Demo extends React.Component {
  render() {
    return <Memo />;
  }
}

export default Demo;

它给出以下错误:

  

TypeError:未定义不是函数(计算render(nextProps))。   该错误位于:   在演示中(at renderApplication.js:34)   在RCTView中(位于View.js:44)

我们可以在React native中使用React.memo吗?

2 个答案:

答案 0 :(得分:1)

const MyFunctionComponent = ({text}) => <Text>{text}</Text>;

MyFunctionComponent.displayName = 'HarmlessComponent';
MyFunctionComponent.propTypes = {text: PropTypes.string.isRequired};

export default React.memo(MyFunctionComponent);

答案 1 :(得分:0)

您要记住的“组件”不是正确的react组件,没有传递任何道具。 react circle HOC也仅适用于功能组件,PinCircleView适用于基于类的组件

您需要确保使用的是引入memo HOC的最新版本的react,并按如下方式使用它:

PureComponent

React memo