在本机中如何重用函数?

时间:2017-03-09 08:25:48

标签: react-native react-native-android react-native-ios

我需要来自其他页面的反应原生的访问函数。

示例:

validateEmail = (email) => {
// ---- Code ----
}

我需要在login.js和registration.js

中访问该函数

4 个答案:

答案 0 :(得分:19)

我可以给你一个我在当前项目中使用的快速示例。

您可以按照以下步骤操作:

1.创建一个/ utils文件夹,您可以将所有共享函数文件放在例如datetimeHelper.js

const dateTimeHelper = {
  getFormattedDatetime: (datetime) => {
    return moment.utc(datetime).local().format('MMM Do, YYYY, h:mm a');
  }
}

export default datetimeHelper;

2.将文件导入您需要的位置:

import DateTimeHelper from './utils/datetimeHelper.js';

3您可以调用这些函数:

DateTimeHelper.getFormattedDatetime(MY_DATETIME);

答案 1 :(得分:0)

在名为Common.js的应用程序根目录下创建一个文件,并在common.js文件中添加:

'use strict';

class Common {

    //here you can use your validation email code

}

module.exports = Common;

现在可以随时访问此类。

答案 2 :(得分:0)

对于我在评论中写的第一个问题,您可以使用:

Export one function

如果要导出许多功能,可以使用此功能:

Export many functions

您可以将相同的技术用于其他方面,如样式,字体,颜色等。

这些问题是重复的,因此我在这里添加链接。

答案 3 :(得分:0)

我创建了可重用的函数,如下所示:

Helper.js import { Platform, Dimensions } from "react-native";

@objc func didLongPress() {
    var image:UIImage?
    // Some database call? How to get "ab"?
    // Maybe you should not use as! in the following check:
    if ab as! Int>0 {
        image = UIImage(named:"ringy.png")
    } else {
        image = UIImage(named:"green.png")
    }
        
    if let image = image {
        let previewVC = ImagePreviewController(image:image)
        self.present(previewVC, animated: true, completion: nil)
    } else {
        print("No data available")
    }
}

使用这个功能:

function isIphoneWithNotch() {
    const dimen = Dimensions.get("window");
    return (
        Platform.OS === 'ios' &&
        !Platform.isPad &&
        !Platform.isTVOS &&
        (
            dimen.height === 780 ||
            dimen.width === 780 ||
            dimen.height === 812 ||
            dimen.width === 812 ||
            dimen.height === 844 ||
            dimen.width === 844 ||
            dimen.height === 896 ||
            dimen.width === 896 ||
            dimen.height === 926 ||
            dimen.width === 926)
    );
}

export { isIphoneWithNotch };