[英]Trying to goto second inquirer prompt depending on user selection
訓練營學生在這里。 我正在嘗試一起生成團隊資料。 輸入經理信息后,我可以決定是否要添加工程師、實習生或不再添加。 但是,當我選擇“工程師”選項時,應用程序應該顯示另一個詢問者提示以輸入工程師信息。 目前的代碼不允許我這樣做,實際上是在終端上結束了這個過程。 我哪里做錯了?
const inquirer = require("inquirer");
const fs = require("fs");
const path = require("path");
const Engineer = require("./lib/Engineer");
const Intern = require("./lib/Intern");
const Manager = require("./lib/Manager");
const DIST_DIR = path.resolve(__dirname, "dist");
const distPath = path.join(DIST_DIR, "team.html");
const render = require("./src/renderHTML");
let teamMembers = [];
let teamIDs = [];
function startApp() {
function addManager() {
inquirer
.prompt([
{
type: "input",
name: "managerName",
message: "What is the your name?",
validate: (input) => {
if (input) {
return true;
} else {
console.log("Please enter your name to continue!");
return false;
}
},
}, (other questions here)
])
.then((answers) => {
const manager = new Manager(
answers.managerName,
answers.managerID,
answers.managerEmail,
answers.managerOffice
);
teamMembers.push(manager);
teamIDs.push(answers.managerID);
addTeamMember();
});
}
function addTeamMember() {
inquirer
.prompt([
{
type: "list",
name: "member",
message: `Select which team member you'd like to add to your team!`,
choices: ["Engineer", "Intern", "No team members to add"],
},
])
.then((answers) => {
switch (answers.memberChoice) {
case "Engineer":
generateEng(); <----- This is the area I'm having trouble with
break; When I select Engineer, it should run generateEng()
case "Intern": But is instead stopping code execution, via terminal
generateInt();
break;
default:
makeTeam();
}
});
}
function generateEng() {
inquirer
.prompt([
{
type: "input",
name: "engName",
message: `What is the engineer's name?`,
validate: (input) => {
if (input) {
return true;
} else {
console.log("Please enter the engineer's name to continue!");
return false;
}
},
}, (other questions here)
])
.then((answers) => {
const engineer = new Engineer(
answers.engName,
answers.engID,
answers.engEmail,
answers.engGithub
);
teamMembers.push(engineer);
teamIDs.push(answers.engID);
addTeamMember();
});
}
function generateInt() {
inquirer
.prompt([
{
type: "input",
name: "Name",
message: `What is the intern's name?`,
validate: (input) => {
if (input) {
return true;
} else {
console.log("Please enter the intern's name to continue!");
return false;
}
},
}, (other questions here)
])
.then((answers) => {
const intern = new Intern(
answers.intName,
answers.intID,
answers.intEmail,
answers.intGithub
);
teamMembers.push(intern);
teamIDs.push(intID);
addTeamMember();
});
}
function makeTeam() {
fs.writeFileSync(distPath, render(teamMembers), "utf-8");
}
addManager();
}
startApp();
而不是 answers.memberChoice 它應該是 answers.member
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.