mirror of
https://gitee.com/baidu/amis.git
synced 2024-12-02 03:48:13 +08:00
fix: CURD组件设置查询字段数据域二次同步导致渲染错误问题 (#8324)
This commit is contained in:
parent
a074593a92
commit
bdf5985b53
@ -2795,6 +2795,9 @@ CRUD 中不限制有多少个单条操作、添加一个操作对应的添加一
|
||||
> 本文中的例子为了不相互影响都关闭了这个功能。
|
||||
> 另外如果需要使用接口联动,需要设置`syncLocation: false`
|
||||
|
||||
|
||||
`syncLocation`开启后,数据域经过地址栏同步后,原始值被转化为字符串同步回数据域,但布尔值(boolean)同步后不符合预期数据结构,导致组件渲染出错。比如查询条件表单中包含[Checkbox](./form/checkbox)组件,此时可以设置`{"trueValue": "1", "falseValue": "0"}`,将真值和假值设置为字符串格式规避。
|
||||
|
||||
## 前端一次性加载
|
||||
|
||||
如果你的数据并不是很大,而且后端不方便做分页和条件过滤操作,那么通过配置`loadDataOnce`实现前端一次性加载并支持分页和条件过滤操作。
|
||||
|
@ -15,7 +15,7 @@ export interface AutoFilterFormProps extends RendererProps {
|
||||
activedSearchableColumns: Array<IColumn>;
|
||||
searchableColumns: Array<IColumn>;
|
||||
columnsNum: number;
|
||||
onItemToggleExpanded?: (column: IColumn, value: any) => void;
|
||||
onItemToggleExpanded?: (column: IColumn, value: boolean) => void;
|
||||
onToggleExpanded?: () => void;
|
||||
query?: any;
|
||||
|
||||
@ -122,15 +122,24 @@ export function AutoFilterForm({
|
||||
column.searchable.strategy === 'jsonql' ? '' : '__search_'
|
||||
}${column.searchable?.name ?? column.name}`,
|
||||
option: column.searchable?.label ?? column.label,
|
||||
value: column.enableSearch,
|
||||
/**
|
||||
* syncLocation开启后,参数值会从地址栏Query中二次同步到数据域中,其中布尔(boolean)类型的值被转化为字符串
|
||||
* eg:
|
||||
* true ==> "true"
|
||||
* false ==> "false"
|
||||
* 所以这里将真值和假值转化成字符串格式规避
|
||||
*/
|
||||
trueValue: '1',
|
||||
falseValue: '0',
|
||||
value: !!column.enableSearch ? '1' : '0',
|
||||
badge: {
|
||||
offset: [-10, 5],
|
||||
visibleOn: `${
|
||||
column.toggable && !column.toggled && column.enableSearch
|
||||
}`
|
||||
},
|
||||
onChange: (value: boolean) =>
|
||||
onItemToggleExpanded?.(column, value)
|
||||
onChange: (value: '1' | '0') =>
|
||||
onItemToggleExpanded?.(column, value === '1' ? true : false)
|
||||
};
|
||||
})
|
||||
},
|
||||
@ -216,7 +225,7 @@ export default observer(
|
||||
query: any;
|
||||
}) => {
|
||||
const onItemToggleExpanded = React.useCallback(
|
||||
(column: IColumn, value: any) => {
|
||||
(column: IColumn, value: boolean) => {
|
||||
column.setEnableSearch(value);
|
||||
store.setSearchFormExpanded(true);
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user