【问题标题】:Reactjs antd defaultValue return undefinedReactjs antd defaultValue 返回未定义
【发布时间】:2020-10-06 23:37:51
【问题描述】:

我试图创建一个编辑功能,当我试图从表单中获取值时出现问题,假设用户正在编辑他的名字,但他没有编辑他的地址,这将使地址未定义,即使我已经在里面设置了一个defaultValue,这在我的非antd形式之前有效,这是我的代码

表格:

<Form onFinish={this.edit}>
            <Typography>Email</Typography>
            <Form.Item
            name="email"
            >
                <Input defaultValue={user.Email} value={user.Email} className="email form-control col-sm-6"/>
            </Form.Item>

            <Typography>Full Name</Typography>
            <Form.Item
            name="name"
            >
                <Input defaultValue={user.FullName} value={user.FullName} className="email form-control col-sm-6"/>
            </Form.Item>
            <Typography>Admin</Typography>
            <Form.Item
            name="admin"
            >
            {
                (user.IsAdministrator)
                ?   <div> 
                  <Select value="yes">Admin
                  <Select.Option value="no">Not Admin</Select.Option>
                  </Select>
                  </div>
                : <div>
                  <Select value="no">Not admin
                  <Select.Option value="yes">Admin</Select.Option>
                  </Select>
                  </div>  
            }
            </Form.Item>
            <Typography>Active Status</Typography>
            <Form.Item
            name="aktif"
            >
            {
                (user.IsActive)
                ? <Toggle className="switch-lg" checked/>
                : <Toggle className="switch-lg"/>
            }
            </Form.Item>
            <Form.Item>
            <Button type="primary" htmlType="submit" className="login col-md-10">Submit</Button>

这是我获得价值的方式:

edit(values){
        const name = values.name
        const aktif = values.aktif
        const index = this.state.id
        console.log(values)
    }

感谢之前,任何帮助将不胜感激

【问题讨论】:

    标签: reactjs antd


    【解决方案1】:

    As mentioned in the docs,

    您不能通过valuedefaultValue 属性为每个表单控件设置值,您应该使用ForminitialValues 设置默认值。

    示例如下:

    <Form
          onFinish={onFinish}
          initialValues={{
            residence: ['zhejiang', 'hangzhou', 'xihu'],
            prefix: '86',
          }}
        >
    

    【讨论】:

    • 谢谢!我将 InputNumber 默认值设置为 number 而不是 string 就像您为前缀所做的那样。设置 '0' 对我有用!
    猜你喜欢
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 2019-11-17
    相关资源
    最近更新 更多