Я использую response-admin (3.1.2) и внедряю кнопку «Сохранить и добавить», чтобы разрешить массовое создание, как описано здесь .
Я пытаюсь предварительно заполнить определенные поля в следующей форме создания на основе входных данных предыдущей формы. Как мне этого добиться?
Песочница, чтобы посмотреть
Я создал кодовую песочницу , не стесняйтесь ее раскошелиться. Ожидаемое поведение заключается в том, чтобы предварительно заполнить поле teaser
предыдущим значением тизера, когда вы нажимаете кнопку «Сохранить и добавить» на странице пост-создания (PostCreate. js).
Мой компонент создания выглядит следующим образом это на данный момент:
const PostCreateToolbar = props => (
<Toolbar {...props}>
<SaveButton
label="post.action.save_and_edit"
redirect="edit"
submitOnEnter={true}
/>
<SaveButton
label="post.action.save_and_add"
redirect={false}
submitOnEnter={false}
variant="text"
/>
</Toolbar>
);
const PostCreate = ({ permissions, ...props }) => {
return (
<Create {...props}>
<SimpleForm
toolbar={<PostCreateToolbar />}
validate={values => {
const errors = {};
["title", "teaser"].forEach(field => {
if (!values[field]) {
errors[field] = "Required field";
}
});
return errors;
}}
>
<TextInput autoFocus source="title" />
<TextInput source="teaser" fullWidth={true} multiline={true} />
</SimpleForm>
</Create>
);
};
То, что я пробовал
Этот пример не соответствует моим потребностям, так как мне нужно сначала сохраните текущую форму перед перенаправлением на новую форму.
Этот ответ также не работает, так как мне просто нужно некоторые поля (не все ), необходимо предварительно заполнить.
Я также попытался перенаправить на форму создания, передавая параметры полей для предварительного заполнения, используя prop redirect="/posts/create?teaser=aa"
в компоненте SaveButton, но затем новая форма заполняется all данные из предыдущей формы.
Любая помощь по этому вопросу будет очень признательна.
Большое спасибо.