我有一个使用Formik的表格。在该表单中,我有一个模式(react-bootstrap),它显示有人单击父表单中的特定项目时的情况。模态包含另一种形式,它也正在使用Formik。
现在,很明显,当我在编辑模态后关闭模态时,数据会从模态中丢失。我的问题是:如何保留模态中的数据并将值传递给道具?以前,模态形式是父形式的一部分,所以这就是为什么我要具体询问Formik方法的原因。但是,如果没有Formik的人可以找到很好的解决方案,那么它对我也有帮助(但请记住,我的父表单仍将使用Formik)。
传递道具是我所知道的,但是我不知道如何以模态和父形式的模态来做,所以任何帮助都是有用的。
我的模态组件的一部分(我不知道代码的哪些部分是必需的,因此如果需要,我将粘贴更多内容)
<React.Fragment>
<Modal
{...this.props}
bsSize="large"
aria-labelledby="contained-modal-title-lg"
>
<Modal.Body>
<fieldset
disabled={
this.props.status > MyFormStatus.InProgress ||
(this.props.status === MyFormStatus.InProgress &&
this.props.projectStatus > ProjectStatus.Active)
}
>
{isProjectType && (
<Form.Row>
<Col>
<Form.Group>
<Form.Label htmlFor="shortDescription">Short description</Form.Label>
<Form.Control
as="textarea"
rows={2}
id={`${this.props.prefixName}shortDescription`}
name={`${this.props.prefixName}shortDescription`}
placeholder="Insert description"
value={this.props.shortDescription}
onChange={this.props.onChange}
onBlur={this.props.onBlur}
isInvalid={!!this.props.errors.shortDescription}
/>
{this.props.errors.shortDescription && (
<Form.Control.Feedback type="invalid" style={{ display: 'block' }}>
{this.props.errors.shortDescription}
</Form.Control.Feedback>
)}
</Form.Group>
</Col>
</Form.Row>
)}
...
带有道具的零件(例如this.props.shortDescription
)可以在没有模态的情况下工作,然后一切都很好。因此,我希望在关闭模态后,将值发布到道具,并再次打开模态时,输入将具有其值。