fix: fix filter param of data scope of list block

This commit is contained in:
Zeke Zhang 2024-01-03 17:54:52 +08:00
parent 4c42dd8a13
commit fdbdbac3c6

View File

@ -2,6 +2,7 @@ import { css, cx } from '@emotion/css';
import { FormLayout } from '@formily/antd-v5';
import { createForm } from '@formily/core';
import { FormContext, useField } from '@formily/react';
import _ from 'lodash';
import React, { createContext, useContext, useEffect, useMemo } from 'react';
import { BlockProvider, useBlockRequestContext, useParsedFilter } from '../../../block-provider';
import { useRecord } from '../../../record-provider';
@ -66,6 +67,12 @@ export const ListBlockProvider = (props) => {
};
}, [parsedFilter, params]);
// parse filter 的过程是异步的,且一开始 parsedFilter 是一个空对象,所以当 parsedFilter 为空 params.filter 不为空时,
// 说明 filter 还未解析完成,此时不应该渲染,防止重复请求多次
if (_.isEmpty(parsedFilter) && !_.isEmpty(params?.filter)) {
return null;
}
return (
<BlockProvider name="list" {...props} params={paramsWithFilter}>
<InternalListBlockProvider {...props} />