Inquirer中的条件提示渲染?

时间:2019-06-02 05:50:50

标签: javascript node.js

我正在使用库inquirer在node.js中构建命令行界面。

根据我的需要,我想在用户输入时呈现提示,确认文本等。例子。

查询者用法

var _questions = [{
  'type': 'list',
  'name': 'databasetype',
  'message': 'Choose database :',
  'choices': ['mongoDB', 'mysql [alpha]', 'firebase [alpha]', 'url [alpha]'],
  'default': 'mongoDB'
}, {
 'type': 'input',
 'name': 'xfactor',
 'message': 'X Factor [email, username etc..] :'
}]

// show question's.
Inquirer.prompt(_questions).then(async (__answers) => {
 console.log(__answers)
})

我想要什么

如果用户选择mongoDB,则它应再次显示提示 mongodb网址

1 个答案:

答案 0 :(得分:1)

您可以使用when问题属性,它的值应该是一个返回布尔值的函数; true代表表演问题,false代表不表演问题

所以以您的示例为例:

_questions = [{
    'type': 'list',
    'name': 'databasetype',
    'message': 'Choose database :',
    'choices': ['mongoDB', 'mysql [alpha]', 'firebase [alpha]', 'url [alpha]'],
    'default': 'mongoDB'
}, {
   'type': 'input',
   'name': 'url',
   'message': 'Enter the URL'
   'when': (answers) => answers.databasetype === 'mongoDB'
   }]

在此处查看更多示例when usage examples