0

我正在构建一个自定义的 twilio flex react-plugin。我正在尝试使用 sidenav 按钮添加自定义视图。因此该按钮应该仅对管理员可见。我正在尝试访问当前工作人员属性并检查角色是否包含“管理员”。

init(flex, manager) {
    // adds the sms button to the navbar
    flex.SideNav.Content.add(<customButton key="nav-custom-button"/>,
    {
      sortOrder: 1,
      if: (props) => props.worker.attributes.roles.includes( 'admin'),
    });

但是 flex 本地实例无法加载并尝试重复验证。

我也试过

if( manager.worker.attributes.roles.includes( 'admin')){
    flex.SideNav.Content.add(<OutboundSmsButton key="nav-outbound-sms-button"/>);
     }
    

它在控制台中记录错误无法读取未定义的属性。

在 twilio react 插件中获取工作人员(对于当前代理)属性的正确方法是什么?

4

1 回答 1

0

解决方案如下:

if( manager.workClient.attributes.roles.includes( 'admin')){
    flex.SideNav.Content.add(<OutboundSmsButton key="nav-outbound-sms-button"/>);
     }

或者如果它不在 init(flex,manager) 中,则需要像下面这样导入 flex:

import * as Flex from '@twilio/flex-ui';


 let mgr = Flex.Manager.getInstance()
     let roleName = mgr.workerClient.attributes.roles
    if( roleName.includes( 'admin')){
          flex.SideNav.Content.add(<OutboundSmsButton key="nav-outbound-sms-button"/>);
       }

来源: https ://www.twilio.com/docs/flex/developer/ui/manager https://twilio.github.io/twilio-taskrouter.js/Worker.html

于 2021-06-29T14:39:08.933 回答