tdesign react 实现点击操作区域选中行效果,useActiveRow使用方法使用方法说明
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]);
|