首页 > 解决方案 > JHipster yeoman 根据选择的选项重复提示

问题描述

假设我想提示用户使用“类型复选框”在数据库选项列表中进行选择:

    {
            type: 'checkbox',
            name: 'databaseType',
            message: `Which ${chalk.yellow('*type*')} of database(s) would you like to use?`,
            choices: response => {
                const databaseOpts = [
                    {
                        value: 'mysql',
                        name: 'MySQL'
                    },
                    {
                        value: 'cassandra',
                        name: 'Cassandra'
                    },
                    {
                        value: 'mongodb',
                        name: 'MongoDB'
                    }
                ];
                return databaseOpts;
            },
            default: 0
    },

在这个初始提示之后,我想获得他们选择的任何选项的响应,并根据他们的选择再次提示他们输入数据库的名称,然后存储它们:

        {
            when: response => response.databaseType === 'mysql',
            type: 'input',
            name: 'selectedMySQL',
            message: 'What is the name of your mysql database? ',
            default: 'testmysql',
            store: true
        },
        {
            when: response => response.databaseType === 'cassandra',
            type: 'input',
            name: 'selectedCassandra',
            message: 'What is the name of your cassandra database? ',
            default: 'testcassandra',
            store: true
        },
        {
            when: response => response.databaseType === 'mongo',
            type: 'input',
            name: 'selectedMongo',
            message: 'What is the name of your mongo database? ',
            default: 'testmongo',
            store: true
        }

样本期望输出:

例如用户在 databaseOpts 中的选择:{mysql, mongodb}

然后它会问:

1)你的mysql数据库的名称是什么?:

2)你的 mongo 数据库的名称是什么?:

用户分别输入将存储在 selectedMySQL 和 selectedMongo 中的名称。

我不熟悉 yeoman 语法,但这是我要实现的逻辑。请帮忙,谢谢。

我试过了:

when: response => response.databaseType.databaseOpts === 'mysql'

但它仍然跳过响应提示。

标签: responsejhipsteryeomanprompt

解决方案


推荐阅读