账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    ant design同一个页面上弹出的多个modal上的表单,如何实现分别自校验
    31
    0

    正在学习使用ant design的modal和表单,碰到一个问题。

    想要达到的效果是父页面上有多个按钮都需要弹出各自的Modal,每个Modal上有Form,有各自的验证内容。

    参考了官方例子写了类似下面的代码

    父页面中添加NewOneA和NewOneB两个类:

    saveAFormRef= (formRef) => {
            this.formRef = formRef;
    }
    
    saveBFormRef= (formRef) => {
            this.formRef = formRef;
    }
    
    render() {
        return(
            <NewOneA
                wrappedComponentRef={this.saveAFormRef}
                visible={visibleA}
                onCancel={this.handleCancelA}
                onOK={this.handleOKA}
            />
            <NewOneB
                wrappedComponentRef={this.saveBFormRef}
                visible={visibleB}
                onCancel={this.handleCancelB}
                onOK={this.handleOKB}
            />
        )
    }

    其中NewOneA 和 NewOneB都是在Modal中的表单
    伪代码:

    <Modal
        visible={visible}
        title={title}
        onOk={onOK}
        onCancel={onCancel}
    >
        <Form>
            <FormItem>
                {getFieldDecorator('author', {
                   rules: [{ ... }],
                })(
                   <Input />
                )}
            </FormItem>
        </Form>
    </Modal>
    

    因为在父页面中,把NewOneA 和 NewOneB的formRef存到同一个this.formRef里了,所以无法正确使用validateFields方法进行校验。

    试了一下想把formRef存到两个state里,比如:

     this.setState({ AformRef: formRef });

    可是在其他方法里从this.state.AformRef 中取不到值,看来不可行。

    请问大家有什么思路可以解决这个问题么?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部