我可以在自耕农的两个提示之间传递数据吗?
例如,我有两个提示,如
{
type: 'input',
name: 'Name',
message: 'Name?'
},{
type: 'input',
name: 'package',
message: 'Package?',
default: 'org.my.app.'+<prompt.name>
}
我想将name
属性显示为包的默认值?我能想到的一种方式是:
我尝试的另一种方法是使用when
{
type: 'input',
name: 'Name',
message: 'Name?'
},{
when: (response) => {
this.testValue = response.Name
return true
},
type: 'input',
name: 'package',
message: 'Package?',
default: 'org.my.app.'+this.testValue
}
但它提供了undefined
,即使函数值内部已存储在this.testValue
还有更好的方法吗?
答案 0 :(得分:1)
我终于找到了答案。实现它的方法是使用两个提示变量,并在第一个承诺返回后运行第二个提示变量
const prompt1 = [{
type: 'input',
name: 'Name',
message: 'Name?'
}];
return this.prompt(prompt1).then(props => {
const prompt2 = [{
type: 'input',
name: 'package',
message: 'Package?',
default: 'org.my.app.'+props.name
}];
return this.prompt(prompt2).then(props => {
//code goes here
});
});