Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

useActiveRow使用方法

返回值使用

1
2
const [rowClassName, setActiveRow] =
useActiveRow([modelDetailsId?.initializationId, viewModelInfo, viewPrunedModelInfo]);

rowClassName 表格的 rowClassName 属性,直接放进表格里

1
rowClassName={rowClassName}

setActiveRow 在点击操作中会导致弹窗的按钮是调用,参数固定为 rowIndex

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
cell: ({ row, rowIndex }: any) => {
const btns: API.ArrangeButton[] = [];
btns.push({
key: 'detail',
node: (
<Button
theme="primary"
variant="text"
disabled={!hasBtnAccess('all.demand.detail')}
>
详情
</Button>
),
click: () => {
setModelDetailsId({
initializationId: row.initializationId,
demandId: row.demandId,
pairId: row.initPairId,
});
setActiveRow(rowIndex);
},
visible: hasBtnAccess('all.demand.detail') ||
hasBtnAccess('show.demand.detail'),
});

hook的参数

* @param activeValues 引发弹窗的数据,会直接对数据进行判断

* @param activeValuesDefault 数据的对应默认值,默认数据是{}或[]需要注意

activeValues 简单来说就是直接控制弹窗的变量数组,没有顺序要求,如果是open,那这里就传对应的open。如果是数据控制的那就把数据放进去。还有如果是复杂的逻辑判断,这里就写具体的判断

1
2
const [rowClassName, setActiveRow] =
useActiveRow([open, viewModelInfo, selType==='Model']);

activeValuesDefault 是上面数据的补充,填写activeValues 的默认数据,非必填,数组大小必须跟activeValues 相同。由于控制弹窗是否显示是根据activeValues 直接进行判断的,所以在一些特殊情况不满足条件,比如viewModelInfo变量默认数据就是 {} 或是 [],这种特殊情况就必须的传递他们的默认值。

1
2
const [rowClassName, setActiveRow] =
useActiveRow([open, viewModelInfo, selType==='Model'],[false,{},false]);