React native 反应本族语-什么是“本族语”;“类型”;平均报警分量法?

React native 反应本族语-什么是“本族语”;“类型”;平均报警分量法?,react-native,alert,React Native,Alert,我是React Native的新手,当我阅读有关组件的内容时,我看到了关于警报方法静态警报(标题、消息?、按钮?、选项?、类型? facebook给出的例子如下: Alert.alert( //Title 'Alert Title', //Message 'My Alert Msg', //Button [ {text: 'Ask me later', onPress: () => console.log('Ask me later pressed'

我是React Native的新手,当我阅读有关组件的内容时,我看到了关于
警报
方法
静态警报(标题、消息?、按钮?、选项?、类型?

facebook给出的例子如下:

Alert.alert(
   //Title
  'Alert Title',
   //Message
  'My Alert Msg', 
   //Button
  [
    {text: 'Ask me later', onPress: () => console.log('Ask me later pressed')},
    {text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
    {text: 'OK', onPress: () => console.log('OK Pressed')},
  ],
   //Options
  { cancelable: false } 
)
没有关于
类型
做什么的例子,有人可以告诉我那些
类型


有没有一种方法可以显示
警报
而不显示
标题

我阅读了源代码,发现
类型
是一个定义如下的字符串:

type AlertType = "default" | "plain-text" | "secure-text" | "login-password";
export interface AlertAndroidStatic {
    alert: (
        title: string,
        message?: string,
        buttons?: AlertButton[],
        options?: AlertOptions
    ) => void;
}
然而,我尝试了所有这些,我没有看到任何差异。因此,我猜测:可能它只针对Android,而不是iOS,但发现Android中的
Alert
定义为:

type AlertType = "default" | "plain-text" | "secure-text" | "login-password";
export interface AlertAndroidStatic {
    alert: (
        title: string,
        message?: string,
        buttons?: AlertButton[],
        options?: AlertOptions
    ) => void;
}
其中不接受
类型
参数。然后,我继续阅读另一个类似的react纯iOS本机API,名为
AlertIOS
,它有两种用法,首先,与
Alert
API相同,您只需

AlertIOS.alert(title, message, buttons, type)
但评论说:

@参数类型已弃用,请勿使用

AlertIOS的第二个用法是:

AlertIOS.prompt(title, message, buttons, type, defaultValue)
在提示用户输入的地方,这里,param
type
有效,如果您希望用户以纯文本形式输入一行,则
type
应为“纯文本”,如果一行为安全文本,则为“安全文本”,如果是登录凭证,则
type
应为“登录密码”。注意,对于Android,您不能使用
Alert
提示用户输入,而
AlertIOS
仅适用于iOS

结论:我不知道为什么
type
Alert
API的第四个参数,对于Android,这个参数被忽略,对于iOS,这个参数没有任何区别。我的猜测是,在react native刚刚问世的早期,他们没有编写名为
AlertIOS
的API,相反,他们只有
Alert
。由于iOS设备提供用户输入提示,但Android设备不提供,因此他们将
type
作为第四个参数,但如果应用程序在Android设备上运行,则忽略该参数。随着时间的推移,他们制作了一个名为
AlertIOS
的API,专门用于iOS警报,但尚未弃用
type
param。无论如何,只需忽略参数即可

回答你的另一个问题:有没有一种不带标题的方式来显示警报


是的,如果您不需要标题或消息,只需将
null
传递给API调用即可。

非常感谢您,先生,答案太棒了,我无法理解
警报的流程
export interface AlertAndroidStatic {
    alert: (
        title: string,
        message?: string,
        buttons?: AlertButton[],
        options?: AlertOptions
    ) => void;
}