提问人:etranz 提问时间:10/24/2023 更新时间:10/24/2023 访问量:43
在 react js 中动态设置 antd 输入默认值
Dynamically set antd input default value in react js
问:
我正在尝试将数据传递给 antd 表单并将数据值设置为输入表单的默认值,但输入上没有显示任何内容。
我从 url 中获取 id,并使用 id 从后端获取数据,并将其作为默认值传递给表单。
卡组件正下方的 winningTags.name 显示名称,但传递给表单的名称不显示。
const EditWinningTags = () => {
const { id } = useParams()
const [winningTags, setWinningTags] = useState([])
useEffect(() => {
const getDraws = async () => {
const res = await CategoryServices.getSingleWinningTags(id);
console.log(res.data.data.name)
if (res.data.data) setWinningTags(res.data.data)
}
getDraws()
}, []);
const [form] = Form.useForm();
const onFinish = (values) => {
console.log(values);
};
const onReset = () => {
form.resetFields();
};
console.log("name ", winningTags.name)
return (
<div className="d-flex justify-content-center align-items-center" style={{ "height": "70vh" }}>
<Card title="Edit Winning Tag" style={{ width: 600 }}>
{winningTags && winningTags.name}
<Form
{...layout}
form={form}
initialValues={{
name: winningTags && winningTags.name,
stake_price: winningTags && winningTags.stake_price,
}}
name="control-hooks"
onFinish={onFinish}
style={{
maxWidth: 600,
}}
>
<Form.Item
name="name"
label="Name"
rules={[
{
required: true,
},
]}
>
<Input />
</Form.Item>
<Form.Item
name="stake_price"
label="Stake Price"
rules={[
{
required: true,
},
]}
>
<Input type='text' values="Mon" />
</Form.Item>
<Form.Item {...tailLayout}>
<Button type="primary" htmlType="submit">
Submit
</Button>
</Form.Item>
</Form>
</Card>
</div>
)
}
答: 暂无答案
评论
initialValues
行不通。它将在组件渲染时首次工作。使用 hook 在收到响应时设置值:。在您的情况下,您可能不需要状态来存储响应数据form
form.setFieldsValue(res.data.data)
getDraws
key
getDraws
)