Ant design react 设置labelAlign无效

发布于 2022-09-12 23:37:44 字数 4308 浏览 13 评论 0

用Ant design Form写了一个分步表单,但是使用labelAlign设置label的对齐方式的时候,没有效果。

import React, { useState } from "react";

const Demo: React.FC = () => {
    const { Step } = Steps;
    const [form] = Form.useForm();
    const [currentStep, setCurrentStep] = useState<number>(0);

    const forward = () => setCurrentStep(currentStep + 1);
    const backward = () => setCurrentStep(currentStep - 1);
    const handleNext = async () => {
        if (currentStep === 0) {
            forward();
        };
        if (currentStep === 1) {
            forward();
        }
    }

    const renderContent = () => {
        if (currentStep === 0) {
            return (
                <>
                    <FormItem name="账号">
                        <Input placeholder="请输入账号" />
                    </FormItem>
                </>
            )
        }
        if (currentStep === 1) {
            return (
                <>
                    <FormItem
                        name="passWord"
                        label="姓名"
                    >
                        <Input placeholder="请输入姓名" />
                    </FormItem>
                    <FormItem
                        name="newpassWord"
                        label="学校"
                    >
                        <Input placeholder="请输入学校" />
                    </FormItem>
                    <FormItem
                        name="email"
                        label="邮箱"
                    >
                        <Row>
                            <Col span={16}>
                                <span>{445151515@qq.com}</span>
                            </Col>
                            <Col span={8}>
                                <a>
                                    修改
                                </a>
                            </Col>
                        </Row>
                    </FormItem>
                    <FormItem
                        name="code"
                        label="家庭住址"
                    >
                         <Input.Password placeholder="请输入家庭住址" />
                    </FormItem>
                </>
            )
        }
        return 
    }

    const renderFooter = () => {
        if (currentStep === 0) {
            return (
                <>
                    <Button
                        type="primary"
                        onClick={() => validateAccount()}
                    >
                        确认
                    </Button>
                </>
            )
        }
        if (currentStep === 1) {
            return (
                <>
                    <Button
                        type="primary"
                        onClick={OnReset}
                    >
                        确认修改
                    </Button>
                </>
            )
        }
        return 
    }

    return (
        <>
            <div className={styles.main}>
                <Steps size="small" current={currentStep}>
                    <Step title="第一步" />
                    <Step title="第二步" />
                    <Step title="第三步" />
                </Steps>
                <div className={styles.formBody}>
                    <Form
                        labelAlign="right"
                        labelCol={{ span: 8 }}
                        wrapperCol={{ span: 16 }}
                        form={form}
                    >
                        {renderContent()}
                    </Form>
                </div>
                <div>
                    {renderFooter()}
                </div>
            </div>
        </>
    )
}
export default Forget

期望的效果:表单全部右对齐
image.png

实际效果:表单排列错乱,变成两端都对齐。我将labelAlign设置的是right,此时却是左对齐。并且

labelCol={{ span: 8 }}
wrapperCol={{ span: 16 }}

的设置完全没有效果
(如下图所示)
image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

红玫瑰 2022-09-19 23:37:44

其实不是 labelAlign 属性无效,而是需要给 label 设定一个宽度, 审查元素,更换 labelAlign 的值可以发现 css 其实是变化的,只是 label 的宽度给限制了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文