代码之家  ›  专栏  ›  技术社区  ›  flix

react native-警报组件方法中的“type”是什么意思?

  •  3
  • flix  · 技术社区  · 7 年前

    我是土生土长的,当我读到 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 有人可以告诉我 类型 ?

    有没有办法显示 Alert 没有 Title ?

    2 回复  |  直到 7 年前
        1
  •  3
  •   K.Wu    7 年前

    我读了源代码发现 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;
    }
    

    哪里 类型 参数不被接受。然后,我继续阅读另一个类似的仅用于ios的react本机api AlertIOS ,它有两个用法,第一,与 警觉的 API,你只是

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

    但评论说:

    @参数类型已弃用,请不要使用

    第二次使用 警报 是:

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

    在提示用户输入的地方,这里,param 有效,如果希望用户以纯文本输入一行,则 类型 应该是“纯文本”,如果安全文本中有一行,则为“安全文本”,如果是登录凭据,则为 类型 应该是“登录密码”。注意,对于android,不能使用 警觉的 警报 仅适用于iOS。

    结论: 我不知道为什么 类型 是的第四个参数 警觉的 api,对于android,这个参数被忽略,而对于ios,这个参数没有任何区别。我的 猜测 是的,在react native刚发布的早期,他们没有编写一个名为 警报 相反,他们只有 警觉的 . 由于提示用户输入可用于iOS设备,但不适用于Android设备,因此他们将 类型 作为第四个参数,但如果应用程序在Android设备上运行,请忽略它。随着时间的推移,他们制作了一个名为 警报 ,专门用于iOS警报,但尚未弃用 类型 参数还没有。不管怎样,只要忽略参数。

    回答你的另一个问题:有没有一种方法可以显示没有标题的警告?

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

        2
  •  -2
  •   Stephen Rauch Afsar Ali    7 年前
    export interface AlertAndroidStatic {
        alert: (
            title: string,
            message?: string,
            buttons?: AlertButton[],
            options?: AlertOptions
        ) => void;
    }
    
    推荐文章