我想创建一个自定义Show
组件,该组件可以使用Filter
组件使用的List
组件。老实说,我不知道从哪里开始。有人能指出我正确的方向吗?
这是List
中使用的方式:
export const LogList = (props) => (
<List {...props} perPage={100} title="Logs and Reports" filters={< FileFilter/>}>
我希望能够像Show
一样使用它:
export const archivedShow = ({ ...props }) => (
<Show title="Log" {...props} filters={<LogFilter/>} >
答案 0 :(得分:0)
您可以编写自定义连接组件。然后你可以按照自己的意愿去做。
您可以像任何其他comp一样为show组件提供操作。 https://marmelab.com/admin-on-rest/Show.html#actions
您可以使用此操作填充州内的字段(可能使用自定义缩减器)
然后您的组件可以连接到redux状态。
如下所示
class connectedReferenceInput extends Component {
render() {
<ReferenceInput source={this.props.source} >
<somecomp>
</ReferenceInput>
}
}
function mapStateToProps(state, props) {
return {
source: state.admin.somefield.source
};
}
export default connect(mapStateToProps, {
crudGetList: crudGetListAction
})(ClientInput)
还有在AOR文档中编写减速器的文档。
更多详情: 1)somecomp是您作为referenceInput的子代所需的任何组件 2)somefield是您设置为在连接的过滤器组件和connectedReferenceInput之间传递数据的任何字段。
解决你正在做的事情。
1)创建一个连接组件,您将成为过滤器的子级。这个连接的组件拍摄了一个redux&#39; Action&#39;通过减速器&#39;
改变你州的某些部分aor docs中提供了编写动作和减速器的文档。
2)创建一个connectedReferenceInput(如上所述),它接收(通过mapStateToProps)您的connectedFilterComp所做的状态更改。使用此方法,您可以为referenceInput创建变量过滤器并显示变量数据。
您基本上使用redux在过滤器和组件之间传递数据。