Передать существующую запись / значение записи в Create Component - PullRequest
0 голосов
/ 16 мая 2018

мы хотели узнать, как вы можете передать существующую / выбранную запись из списка в представление create в реагирующем администраторе.

У нас есть ситуация, когда у каждой записи в нашем списке есть кнопка «Редактировать» и «Создать». Мы хотим иметь возможность нажать «Создать» для указанной строки и иметь возможность отображать информацию о строке / записи в «Создать». Я знаю, что это звучит не иначе, как редактирование, но мы хотим иметь возможность дублировать / создать из существующей функции. Если мы просто использовали обычный режим Create, нам нужно заполнить информацию с нуля. У нас есть случаи, когда мы хотим создать поверх существующих данных.

Еще одна причина, по которой мы спрашиваем об этом, заключается в том, что в документах о реагировании с правами администратора указано:

принимает реквизит записи для инициализации формы на основе объекта значения.

Мы предполагаем, что вы можете передать выбранную запись в создание, мы пробовали это, но, похоже, это не работает.

Любая помощь приветствуется, спасибо.

Вот о чем я думаю:

export const DataCreate = (props) => (
  <Create title="Create new " {...props} >
    <TabbedForm record={props.record} 
    //can we do something like this to pass record to create?> 
    <FormTab label = "Basic Info">
    <TextInput source="type" label="type" />

1 Ответ

0 голосов
/ 14 июля 2018

Недавно мы обновили документацию для этого варианта использования: https://marmelab.com/react-admin/CreateEdit.html#prefilling-a-create-record

Вот пример:

Компонент Create

const commentDefaultValue = { nb_views: 0 };

export const CommentCreate = ({ location, ...props }) => (
    <Create
        record={(location.state && location.state.record) || defaultValue}
        location={location}
        {...props}
    >
        <SimpleForm>
            <TextInput source="author" />
            <RichTextInput source="body" />
            <NumberInput source="nb_views" />
        </SimpleForm>
    </Create>
);

Кнопка Создать

import Button from '@material-ui/core/Button';
import { Link } from 'react-router-dom';

const CreateRelatedCommentButton = ({ record }) => (
    <Button
        component={Link}
        to={{
            pathname: '/comments/create',
            state: { record: { post_id: record.id } },
        }}
    >
        Write a comment for that post
    </Button>
);

EDIT: методика, описанная в документации, больше не будет необходима, когда будет выпущена версия 2.2.0 Create автоматически прочитает значения по умолчанию из состояния местоположения или поиска. См. https://github.com/marmelab/react-admin/pull/1991. Вам все еще понадобится пользовательская кнопка, хотя

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