原来lwc里不能直接启动flow,需要将lwc包装在aura里。前几天偶然发现增加了lightning-flow这个元素,但是Salesforce的官方文档一如既往的烂,很多细节都没说清楚。试了下,发现这么几点:
1.在template里放一个lightning-flow,然后设置它的flow-api-name属性,就可以启动flow了。
2.但这个只能在加载lwc时,自动启动flow,如果希望有条件地启动,有两个方法。方法一是先将flow-api-name属性置空,绑定一个变量,然后在js里改编变量的值。即
<template> <lightning-flow flow-api-name={foo} > </lightning-flow> </template>
foo = ''; bar() { this.foo = 'flowApiName'; }
3.方法二是先去掉flow-api-name属性,加上一个属性以便在js里引用,然后在js里启动flow:
<template> <lightning-flow data-name='foo' > </lightning-flow> </template>
let foo = this.template.querySelector('[data-name="foo"]'); foo.startFlow('flowApiName');
4.如果flow有输入参数,也有两种方法,一种是用lightning-flow的flow-input-variables属性来指定,一种是在js里指定:
foo.startFlow('flowApiName', [{'name':'foo', type:'String', value:'bar'}]);
标签:name,启动,flow,js,lwc,foo From: https://www.cnblogs.com/badnumber/p/16864614.html