如何定义ReferenceTo的filterToQuery prop使用自己的值和另一个输入的值

时间:2017-09-21 13:50:14

标签: admin-on-rest

我的用例:

我有一个表单和两个ReferenceInput,其上带有AutocompleteInput

我在第一个ReferenceInput中选择了一个用户,然后我想查询从服务器到下一个ReferenceInput的所选用户的图书。

如何在这种情况下定义filterToQuery属性?

filterToQuery={searchText => ({ 'q[name_cont]': searchText, q[user_id_eq]: ??? })}

2 个答案:

答案 0 :(得分:0)

aor-dependent-input可能对您有帮助。您可以在README

中找到与您想要的相近的示例

答案 1 :(得分:-1)

您需要编写一个自定义的redux连接组件,它将包装您的referenceInput并根据状态中的选定值提供过滤器值。

您可以从state.admin.form访问当前数据。'YOURFORMNAME' redux表单还提供了一些可用于访问其他组件中的值的实用程序函数

https://redux-form.com/7.0.4/docs/api/selectors.md/

class ConnectedInput extends Component {


    componentWillRecieveProps = (nextProps, currentProps) => {
        if (nextProps.userName !== currentProps.userName) {
            //reset state to set the the filter to query property based on new props and forcing a rerendering which will make the db call
        } 
    }

    render() {
        return (
              <ReferenceInput filterToQuery={this.state.filter}>
                   <DisplayComponent />
              </ReferenceInput>
         )
    }

    mapStateToProps = () => {
        const userName = //get from the state
        return userName
    }
}