fli*_*lix 4 alert react-native
我是 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 }
)
Run Code Online (Sandbox Code Playgroud)
并且没有关于做什么的例子type,有人可以告诉我这些是什么type?
有没有办法显示Alert没有Title?
我阅读了源代码,发现这type是一个定义为的字符串:
type AlertType = "default" | "plain-text" | "secure-text" | "login-password";
Run Code Online (Sandbox Code Playgroud)
但是,我尝试了所有这些,我没有看到任何差异。因此,我猜测:也许它只适用于Android,而不适用于iOS,但发现Alert在Android中定义为:
export interface AlertAndroidStatic {
alert: (
title: string,
message?: string,
buttons?: AlertButton[],
options?: AlertOptions
) => void;
}
Run Code Online (Sandbox Code Playgroud)
其中type不接受参数。然后,我继续阅读另一个类似的仅限 iOS 的 React Native API ,它有 2 个用法,第一,与APIAlertIOS相同,你只需Alert
AlertIOS.alert(title, message, buttons, type)
Run Code Online (Sandbox Code Playgroud)
但评论说:
@param type 已弃用,请勿使用
的第二个用法AlertIOS是:
AlertIOS.prompt(title, message, buttons, type, defaultValue)
Run Code Online (Sandbox Code Playgroud)
提示用户输入的地方,这里,参数type起作用,如果你希望用户以纯文本输入一行,那么type应该是“plain-text”,如果是安全文本一行,那么应该是“secure-text”,如果是登录凭据,则应type为“登录密码”。请注意,对于 Android,您无法使用 提示用户输入Alert,并且AlertIOS仅适用于 iOS。
结论:我不知道为什么type是API的第4个参数Alert,对于Android,这个参数被简单地忽略,而对于iOS,这个参数没有任何区别。我的猜测是,在 React Native 刚出来的早期,他们并没有写一个叫做 的 API AlertIOS,而是只有Alert. 由于提示用户输入适用于 iOS 设备,但不适用于 Android 设备,因此它们将其作为type第四个参数,但如果应用程序在 Android 设备上运行,则忽略它。随着时间的推移,他们制作了一个名为 的 API AlertIOS,专门用于 iOS 警报,但尚未弃用typeparam。无论如何,只需忽略该参数即可。
回答您的另一个问题:有没有办法显示没有标题的警报?
是的,如果您不需要标题或消息,只需传递null给 API 调用即可。
| 归档时间: |
|
| 查看次数: |
2892 次 |
| 最近记录: |