问题
- 对tsx语法不太熟悉,antd官方给出的例子会报语法错误
- 在穿梭框的基础上,需要渲染一个表格
- 可以通过children 传入几个参数
render(){
return(
<a-transfer
:data-source="mockData"
:target-keys="targetKeys"
:disabled="disabled"
:show-search="showSearch"
:filter-option="(inputValue, item) => item.title.indexOf(inputValue) !== -1"
:show-select-all="false" @change="onChange" >
{{
children: ({
direction, //方向
filteredItems, //过滤后的数据
selectedKeys, //选中的条目
disabled: listDisabled, //是否禁用列表
onItemSelectAll, //全选
onItemSelect,//单选
}) => {
<a-table
:row-selection=" getRowSelection({ disabled: listDisabled, selectedKeys, onItemSelectAll, onItemSelect, }) "
:columns="direction === 'left' ? leftColumns : rightColumns"
:data-source="filteredItems"
size="small"
:style="{ pointerEvents: listDisabled ? 'none' : null }"
:custom-row=" ({ key, disabled: itemDisabled }) => ({ onClick: () => { if (itemDisabled || listDisabled) return; onItemSelect(key, !selectedKeys.includes(key)); }, }) " />
}
}}
</a-transfer>
)
}
问题:全选无法反选
原因:少了一段比对的部分
onSelectAll(selected: boolean, selectedRows: Record<string, string | boolean>[]) {
const treeSelectedKeys = selectedRows .filter(item => !item.disabled) .map(({ key }) => key);
const diffKeys = selected
? difference(treeSelectedKeys, selectedKeys)
: difference(selectedKeys, treeSelectedKeys);
onItemSelectAll(diffKeys, selected); },
onSelect({ key }: Record<string, string>, selected: boolean) { onItemSelect(key, selected); },
问题: 无法实现两边分开翻页 并且加上手动翻页之后,后面的内容没办法补位
解决:还没解决 可能不能直接用穿梭框了