Я прочитал исходный код и обнаружил, что type
является строкой, определенной как:
type AlertType = "default" | "plain-text" | "secure-text" | "login-password";
Однако, я попробовал все из них, я не вижу различий.Поэтому я предположил: возможно, это только для Android, а не для iOS, но обнаружил, что Alert
в Android определяется как:
export interface AlertAndroidStatic {
alert: (
title: string,
message?: string,
buttons?: AlertButton[],
options?: AlertOptions
) => void;
}
, где type
параметр не принимается.Затем я продолжил читать еще один подобный нативный API-интерфейс реакции для iOS под названием AlertIOS
, который имеет 2 использования, во-первых, то же самое, что и Alert
API, вы просто
AlertIOS.alert(title, message, buttons, type)
Но в комментарии говорится:
@ тип параметра Устаревший, не используйте
Второе использование AlertIOS
:
AlertIOS.prompt(title, message, buttons, type, defaultValue)
, где вы запрашиваете ввод данных пользователем, здесь, параметр type
имеет значение, если вы хотите, чтобы пользователь вводил одну строку в виде обычного текста, тогда type
должно быть «простым текстом», если одна строка в защищенном тексте, то «secure-text», если это учетные данные для входатогда type
должно быть "логин-пароль".Обратите внимание, что для Android вы не можете запросить ввод пользователя с помощью Alert
, а AlertIOS
доступен только для iOS.
Вывод: Я не знаю, почему type
является 4-м параметром Alert
API, для Android этот параметр просто игнорируется, а для iOS этот параметр не имеет значения.Мое предположение состоит в том, что в первые дни, когда только что появился реакции на натив, они не писали API под названием AlertIOS
, вместо этого у них было только Alert
.Поскольку запрос на ввод данных пользователем доступен для устройств iOS, но не для устройств Android, в качестве четвертого параметра они вводят type
, но игнорируют его, если приложение работает на устройстве Android.И со временем они создали API под названием AlertIOS
, специально для оповещений iOS, но еще не устарели до параметра type
.В любом случае, просто проигнорируйте параметр.
Чтобы ответить на другой вопрос: есть ли способ показать предупреждение без заголовка?
Да, если вы не хотите заголовок ИЛИ сообщение, просто передайтеnull
на вызов API.