React-admin中公司与分支ReferenceInput联动失效问题求助
我来帮你搞定这个联动问题!你的代码里已经用了DependentInput来关联公司选择,但缺了最关键的一步:给分支的ReferenceInput添加基于选中CompanyID的过滤条件,这样它才会只加载对应公司的分支数据。
修改后的完整代码
<ReferenceInput source="CompanyID" reference="companies" allowEmpty alwaysOn> <SelectInput optionText={choice => `${choice.name}`} /> </ReferenceInput> <DependentInput dependsOn="CompanyID"> <ReferenceInput source="BranchID" reference="branches" allowEmpty alwaysOn // 核心:动态根据选中的CompanyID过滤分支 filter={({ values }) => values.CompanyID ? { motherID: values.CompanyID } : {}} > <SelectInput optionText={choice => `${choice.tmima} ${choice.address}`} /> </ReferenceInput> </DependentInput>
关键修改点解释
添加动态过滤条件
给分支的ReferenceInput加上filter属性,这个函数会接收当前表单的values对象(里面包含已经选中的CompanyID)。我们通过它构建过滤规则,让branches接口只返回motherID与选中CompanyID匹配的分支。兼容未选择公司的情况
用三元判断处理了CompanyID为空的场景:如果还没选公司,就不传过滤条件(或者你可以改成{ motherID: null },根据后端接口的逻辑调整)。后端接口支持
要确保你的branches资源对应的后端接口能正确处理这个过滤参数。React Admin默认会把filter转换成类似?filter={"motherID":123}的格式,后端需要解析这个参数并返回对应的数据。
内容的提问来源于stack exchange,提问作者Selini Kyriaz
相关产品推荐
相关产品推荐

