【发布时间】:2020-01-22 09:57:33
【问题描述】:
我正在使用 react-admin(3.1.2) 并且我正在实现一个“保存并添加”按钮以允许批量创建,如 here 所述。
我正在尝试根据前一个表单的输入在下一个创建表单上预填充 某些 字段。我怎样才能做到这一点?
沙盒看看
我创建了一个code sandbox,请随意分叉它。预期的行为是当您单击“创建后”页面 (PostCreate.js) 上的“保存并添加”按钮时,使用先前的预告值预填充字段 teaser。
我的创建组件目前看起来像这样:
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>
);
};
我尝试了什么
这个example 不符合我的需要,因为我需要在重定向到新表单之前先保存当前表单。
这个answer 也不起作用,因为我只需要预先填写一些字段(不是全部)。
我还尝试重定向到创建表单,在参数中传递字段以在 SaveButton 组件中使用 prop redirect="/posts/create?teaser=aa" 进行预填充,但随后新表单将填充 all 上一个表单中的数据.
对此的任何帮助将不胜感激。
非常感谢。
【问题讨论】:
标签: reactjs react-admin