【发布时间】:2021-11-30 10:46:43
【问题描述】:
目标是不仅直接在建议列表中,而且在建议对不同资源的引用中对过滤器值进行 AutocompleteInput 检查。 具体来说,假设 Quote 引用了 Contact 和 Address,并且用户在输入中输入了“abc”。现在,地址包含“abc”的报价也应该显示在建议列表中。 最优雅的方法是使用 useGetOne 钩子,如下面的代码 sn-p 所示,但您不能从 React 组件外部调用该钩子。
const matchAnyNested = (filter, value) => {
if (matchAnyField(filter, value)) return true;
const { data: contact } = useGetOne('contacts', value.contact_id);
if (matchAnyField(filter, contact)) return true;
const { data: account } = useGetOne('accounts', contact.account_id);
if (matchAnyField(filter, account)) return true;
for (let item of value.part_items) {
const part = useGetOne('parts', item.part_id);
if (matchAnyField(filter, part)) return true;
}
return false;
};
[...]
<AutocompleteInput ... matchSuggestion={matchAnyNested} />
有没有办法从 matchSuggestion 函数中获取记录,或者通过其他方式来验证基于嵌套记录的建议?感谢您的帮助
【问题讨论】:
标签: reactjs react-hooks react-admin