React Native - " type"警报组件方法意味着什么?

时间:2018-05-31 08:23:36

标签: react-native alert

我是React Native的新手,当我读到有关Alert组件的内容时,我已经看到alert方法static alert(title, message?, buttons?, options?, type?)

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做什么的例子,有人可以告诉我那些type是什么?

有没有办法让Alert显示Title

2 个答案:

答案 0 :(得分:3)

我阅读了源代码,发现type是一个字符串,定义为:

type AlertType = "default" | "plain-text" | "secure-text" | "login-password";

然而,我尝试了所有这些,我没有看到任何差异。因此,我猜测:也许只适用于Android,而不是iOS,但发现Android中的Alert定义为:

export interface AlertAndroidStatic {
    alert: (
        title: string,
        message?: string,
        buttons?: AlertButton[],
        options?: AlertOptions
    ) => void;
}

不接受type param。然后,我继续阅读另一个名为AlertIOS的类似反应原生API for iOS,它有2个用法,第一个,与Alert API相同,你只需

AlertIOS.alert(title, message, buttons, type)

但评论说:

  

@param type不推荐使用,不要使用

AlertIOS的第二次使用是:

AlertIOS.prompt(title, message, buttons, type, defaultValue)

在你提示用户输入的地方,这里,param type有效,如果你想让用户用纯文本输入一行,那么type应该是"纯文本&#34 ;如果安全文本中有一行,那么"安全文本",如果它是登录凭据,那么type应该是" login-password"。请注意,对于Android,您无法使用Alert提示用户输入,而AlertIOS仅适用于iOS。

结论:我不知道为什么typeAlert API的第4个参数,对于Android,这个参数被简单地忽略了,而对于iOS,这个参数没有& #39; t有所不同。我的猜测是,在本土刚出现的早期,他们没有编写名为AlertIOS的API,相反,他们只有Alert。由于提示用户输入可用于iOS设备但不适用于Android设备,因此他们将type作为第4个参数,但如果应用程序在Android设备上运行则忽略它。随着时间的推移,他们制作了一个名为AlertIOS的API,专门针对iOS提醒,但还没有弃用type param。无论如何,只需忽略参数。

回答你的另一个问题:有没有办法在没有标题的情况下显示警报?

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

答案 1 :(得分:-2)

export interface AlertAndroidStatic {
    alert: (
        title: string,
        message?: string,
        buttons?: AlertButton[],
        options?: AlertOptions
    ) => void;
}