ReferenceArrayInput внутри FormDataConsumer не предоставляет данные обратно - PullRequest
1 голос
/ 09 апреля 2019

У меня есть этот код:

                <ReferenceInput label="Tipus" source="type" reference="categories" validate={ required() } >
                    <AutocompleteInput optionText="name" />
                </ReferenceInput>
                <FormDataConsumer>
                    {({formData, ...rest}) => {
                        console.log(formData)
                        if ( formData.type !== undefined ) {
                            var t = formData.type;
                            var myType = t.toString();
                            var myOptionText = `${myType}.name`
                        }
                        return (
                                    <ReferenceArrayInput label="Categories dynamic" source={myType} reference="categories" {...rest}>
                                        <SelectArrayInput optionText="name" />
                                    </ReferenceArrayInput>
                        )
                       }}
                </FormDataConsumer>

У меня есть данные API, которые выглядят так:

[
    {
        "21": [
            {
                "id": 22,
                "name": "Pontgyűjtő",
                "old_id": 0,
                "parent_id": 21,
                "type": 2
            },
            {
                "id": 23,
                "name": "Akciós",
                "old_id": 1,
                "parent_id": 21,
                "type": 2
            },
            {
                "id": 24,
                "name": "Aranykártya",
                "old_id": 2,
                "parent_id": 21,
                "type": 2
            },
            {
                "id": 25,
                "name": "Kedvező tankolás",
                "old_id": 3,
                "parent_id": 21,
                "type": 2
            }
        ],
        "id": 21,
        "name": "Hitelkártya",
        "old_id": null,
        "parent_id": null,
        "type": null
    },
    {
        "53": [
            {
                "id": 54,
                "name": "Minta alkategória",
                "old_id": 0,
                "parent_id": 53,
                "type": 90
            }
        ],
        "id": 53,
        "name": "Minta kategória",
        "old_id": null,
        "parent_id": null,
        "type": null
    },
    {
        "id": 55,
        "name": "Minta folyószámla kategória",
        "old_id": null,
        "parent_id": null,
        "type": null
    }
]

в журнале консоли я вижу formData.type === мой "id", например, 21.

Я хочу получить массив «21» с моим ReferenceArrayInput, чтобы я мог выбирать из всех его подкатегорий.

Я также хочу сохранить его в исходном источнике категорий.

например. когда я использую постоянные значения для моего SelectArrayInput, мой источник - «категории»

const choices = [
    { id: 3, name: "Bla1" },
    { id: 4, name: "Bla2" },
    { id: 5, name: "Bla3" },
    { id: 6, name: "Bla4" },
    { id: 7, name: "Bla5" },
    { id: 8, name: "Bla6" },
    { id: 9, name: "Bla7" },
    { id: 0, name: "Bla8" },
    { id: 1, name: "Bla9" },
];

<SelectArrayInput source="categories" choices={choices} optionText="name" optionValue="id" validate={ required() } allowEmpty={false} />

Таким образом, моя цель - динамически выбирать варианты из конечной точки REST API категорий, выбирать из нее и сохранять ее в моей исходной конечной точке REST API (которая называется «ads») в поле категорий).

Я знаю, что я что-то не так делаю, но даже если бы я сделал это для Google, я не нашел решения. Может быть, вы могли бы помочь мне исправить то, что я делаю неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...