我正在尝试将自定义过滤器添加到我的列表视图中。之前,我已经设法使用redux-form的Field组件创建自定义输入,并在Edit和Create视图中使用它。现在,当我尝试在Filter组件中使用相同的概念时,似乎道具未定义。我不知道为什么。我想创建自定义过滤器的原因是在时间戳上使用= gte =和= lte =进行过滤。
我想要的:一个自定义输入,我可以在其中验证并对时间戳进行一些计算,然后使用= gte =和= lte =来搜索它。
答案 0 :(得分:0)
我与您分享了一个对我有用的组件:
import React, { Component } from 'react'
import { DateInput } from 'react-admin'
import { addField } from 'ra-core'
class DateBetweenInput extends Component {
render () {
const styles = {
row: {
display: 'flex',
flexDirection: 'row',
alignItems: 'flex-start',
justifyContent: 'space-between'
}
}
const { resource, source } = this.props
return (
<span style={styles.row}>
<DateInput
source={`${source}.gt`}
label={`resources.${resource}.fields.${source}_gt`}
/>
<DateInput
source={`${source}.lt`}
label={`resources.${resource}.fields.${source}_lt`}
/>
</span>
)
}
}
DateBetweenInput.defaultProps = {
addLabel: true,
label: 'createdAt'
}
export default addField(DateBetweenInput)
const PostFilter = (props) => (
<Filter {...props}>
<DateBetweenInput source='createdAt' alwaysOn />
</Filter>
)
此功能现在是GitHub https://github.com/marmelab/react-admin/issues/817上的一个未解决问题