添加自定义动作

1.配置 config


export default{
  base,
  configuration,
  //...
  actions: [
    {
      name: '放大',
      value: 'enlarge',
      config: [   //自定义动作的配置项,在平台上选择该动作后展示相关控件
        {
          name: 'ratio',
          displayName: '放大倍数',
          value: 1,
          type: 'number'
        }
      ]
    }
  ]
}
{
  "base",
  "configuratio",
  ...
  "actions": [
    {
      "name": "放大",
      "value": "enlarge",
      "config": [  
        {
          "name": "ratio",
          "displayName": "放大倍数",
          "value": 1,
          "type": "number"
        }
    	]
    }
  ]
}

2.参数


  • 事件名称:{actionName}_{id}
  • actions: 自定义动作的配置数据,与配置项的相同,不同的在于动态变化的config数据,如果没有动态变化的数据或者不需要用到,可以忽略


事件

通过监听事件名称来触发自定义动作,需要获取的参数为event.data, 该值为配置的config转为对象的值


3.使用


const Demo = ({ id, emit, data, configuration }) => {
  const divRef = useRef(null);

  //... 
  useEffect(() => {
    const handleAction = (event) => {
      const { data = {} } = event;
      divRef.current.style = `transform: scale(${data.ratio})`
    }
    document.addEventListener(`scale_${id}`, handleAction, false);
    return () => {
      document.removeEventListener(`scale_${id}`, handleAction)
    }
  }, [])
  
  return (
    <div className="__easyv-component" id={id}>
      <div ref={divRef}>
        执行其他组件的事件,触发我的自定义动作“放大”
      </div>
    </div>
  );
}


4.配置自定义动作

为了测试该功能,需要先发布组件

在交互面板的自定义事件中为控制组件(组件A)添加点击事件,被控制组件为绑定了自定义动作的组件(组件B),动作项则是选择我们配置的“放大”自定义动作,计划点击组件A时,组件B会放大


5.最终效果

点击右上角的预览按钮查看效果


6.示例Demo下载

如遇其他使用问题,可扫描下方二维码,获取更多产品支持~

400-8505-905复制
免费试用
在线咨询
微信社区
易知微-数据可视化
微信扫一扫入群