В React Native, как повторно использовать функции?

Мне нужны функции доступа с другой страницы в React Native.

Пример :

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

Мне нужен доступ к этой функции как в login.js, так и в registration.js.


person Saravana Kumar    schedule 09.03.2017    source источник
comment
Вы можете увидеть ответ @Nader Dabit здесь: введите описание ссылки здесь   -  person vaklinzi    schedule 09.03.2017
comment
Это работа @zakster. Но 1. Создайте файл, который экспортирует функцию: module.exports = function (variable) {console.log (variable); } Здесь мы можем объявить только одну функцию. Как объявить несколько функций?   -  person Saravana Kumar    schedule 09.03.2017
comment
Вот короткий и приятный ответ. stackoverflow.com/a/38402100/2833640   -  person ashok    schedule 10.12.2017


Ответы (4)


Я могу привести вам быстрый пример, который я использую в своем текущем проекте.

Вы можете выполнить следующие действия:

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);
person MattYao    schedule 09.03.2017
comment
Я использую этот код, но отображение undefined не является объектом (оценка _ApiHelper.ApiHelper.getdata) - person Aslam Patel; 05.01.2018
comment
Привет, @AslamPatel! Не могли бы вы поделиться кодом, чтобы я мог помочь вам разобраться? - person MattYao; 31.01.2018
comment
Спасибо, аналогичный подход utils каталог, имеющий множество helpers, таких как проверка, работа с датами и так далее. Хороший подход! - person Michael Stokes; 05.02.2018
comment
Разве это не должно читаться import dateTimeHelper, а не import DateTimeHelper, или наоборот? - person dps; 08.01.2020

Создайте файл в корне приложения с именем Common.js и внутри файла common.js добавьте следующее:

'use strict';

class Common {

    //here you can use your validation email code

}

module.exports = Common;

Теперь обращайтесь к этому классу где угодно.

person Ankush Rishi    schedule 09.03.2017
comment
Как получить доступ к функциям внутри Common.js @Ankush Rishi - person Saravana Kumar; 09.03.2017

Для первого вопроса, как я написал в комментариях, вы можете использовать это:

Экспорт одной функции

Если вы хотите экспортировать много функций, вы можете использовать это:

Экспорт множества функций

Вы можете использовать ту же технику для других вещей, таких как стили, шрифты, цвета и так далее.

Эти вопросы дублируются, поэтому я добавляю сюда ссылки.

person vaklinzi    schedule 09.03.2017

Я создал повторно используемую функцию, как показано ниже:

Helper.js import {Platform, Dimensions} из react-native;

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 };

Используйте эту функцию:

import { isIphoneWithNotch } from "./Helper";

console.log(isIphoneWithNotch());
person Khurshid Ansari    schedule 16.03.2021