const filterVal = (record) => ({
name: record.account,
});
<ReferenceArrayInput {...props} source="access_id" reference="awsroles" label="AWS Roles" sort={{ field: 'id', order: 'DESC' }} filter={filterVal}
allowEmpty>
<SelectArrayInput source="id" />
我想根据记录中的一个值在ReferenceArrayInput中添加动态过滤器。但是,由于某些原因,它无法正常工作。非常感谢任何帮助。
谢谢!
答案 0 :(得分:2)
我最终做了这样的事情:
var filterVal = (props) => {
return {AwsAccountId: props.match.params.id};
};
<ReferenceArrayInput source="access_roles" reference="awsroles" label="AWS Roles" sort={{ field: 'id', order: 'DESC' }} filter={filterVal(props)} allowEmpty>
答案 1 :(得分:0)
您可以尝试AOR相关输入。
https://github.com/marmelab/aor-dependent-input
您可以将SelectArray输入包装在HOC中。这样您就可以拦截传递给SelectArray输入的记录并根据需要进行更改。
像这样的东西。
const higherOrderComp = WrappedComponent => props => {
return <div ><WrappedComponent {...modifyRecord(props)} /></div>
}
const modifyRecord = (props) => {
//do something with props.record .....
}
注意 - 确保modifyRecord复制道具然后修改它。切勿尝试直接修改输入属性。