有条件地需要React-Native

时间:2018-08-24 08:24:32

标签: reactjs react-native

我想创建一个通用元素,该元素在网络中返回div,在React-Native中返回View。 当前,它看起来像这样:

export const Element = ({children, ...rest}) => {
  if (typeof document != 'undefined') {
    return <div {...rest}>{children}</div>
  } 
  try {
    const View  = require('react-native').View;
    return <View {...rest}>{children}</View>
  } catch (e) {
    return {};
  }
};

我使用try-catch,因为出现此错误:

  

未找到模块:错误:无法解析“ react-native”

我如何有条件地需要React-Native而不需要try-catch?

1 个答案:

答案 0 :(得分:0)

您可以尝试导入类似react-native的外部函数

import { View } from 'react-native'
export const Element = ({children, ...rest}) => {
  if (typeof document != 'undefined') {
    return <div {...rest}>{children}</div>
  } 
    return <View {...rest}>{children}</View>
};

可能会帮助您。