从lwc启动flow

原来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'}]);

 

posted @   平静寄居者  阅读(104)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2018-11-06 浏览器自动化的一些体会8 HttpWebRequest的几个问题
点击右上角即可分享
微信分享提示