Ari*_*nik 5 javascript yo inquirer
因此,我想做的是在进一步询问问题时使用先前的答案。基本上,这样我可以显示将要创建的内容的摘要并要求进行验证。
this.prompt([
{
type: 'input',
name: 'name',
message: 'What is your name?'
default: 'Jake'
},
{
type: 'confirm',
name: 'summary',
message: 'Is this information correct? Your name is:' + answers.name',
}
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法可以做到这一点?还是实现列出所有先前答案的摘要类型事物的另一种方式?
小智 7
任一巢查询者调用:
inquirer
.prompt({
type: 'list',
name: 'chocolate',
message: "What's your favorite chocolate?",
choices: ['Mars', 'Oh Henry', 'Hershey']
})
.then(() => {
inquirer.prompt({
type: 'list',
name: 'beverage',
message: 'And your favorite beverage?',
choices: ['Pepsi', 'Coke', '7up', 'Mountain Dew', 'Red Bull']
});
});
Run Code Online (Sandbox Code Playgroud)
或者使用该when功能。
{
type: 'confirm',
name: 'summary',
message: 'Is this information correct? Your name is:' + answers.name,
when: function( answers ) {
// Only run if user set a name
return !!answers.name;
},
}
Run Code Online (Sandbox Code Playgroud)
就我而言,丹尼尔的回答不适用于询问者 7。解决方法可以是将大提示分成几个,并使用匿名async函数包装它们。这将永远是安全的。
const inquirer = require("inquirer");
(async () => {
const ans1 = await inquirer.prompt([
{
type: "input",
name: "name",
message: "What is your name?",
default: "Jake",
},
]);
const ans2 = await inquirer.prompt([
{
type: "confirm",
name: "summary",
message: "Is this information correct? Your name is:" + ans1.name,
},
]);
return { ...ans1, ...ans2 };
})()
.then(console.log)
.catch(console.error);
Run Code Online (Sandbox Code Playgroud)
这将记录:
{ name: 'Foo bar', summary: true }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1520 次 |
| 最近记录: |