reactjs - reactjs上根据动态数据填写表单
问题描述
我正在尝试一个非常简单的实现,即useState
更改表单字段的钩子。表单字段包含一个产品名称,该名称是在 api 调用之后带来的。在 api 调用之后,我想在表单值中设置名称,但它不起作用。让我们跳到下面的代码
import React, {useState, useEffect} from 'react'
import {Form, Input} from 'antd'
const Product = () => {
const [name, setname] = useState('')
//get data from api call here
useEffect(() => {
//or get data from api call here
setname(apidata.name)
console.log(apidata.name) //It prints name in console
})
return(
<Form>
<Input value={name} onChange={e => setname(e.target.value)} /> //But here i cant get value
</Form>
)
}
export default Product
上面标有注释,即使我在 useEffect 中使用硬代码名称,我的代码也不起作用,就像setname('mabuhay')
它不起作用一样。
注意:我apollo-react
useQuery
用来从graphql api
& 第一个响应返回空对象获取数据
解决方案
尝试在你的 useeffect 中添加一个空数组,我认为每次你为 name 设置一个值时都会调用它,这就是为什么没有发生任何事情
useEffect(() => {
setname(apidata.name)
console.log(apidata.name)
}, [])
推荐阅读
- python - 如何每60秒刷新一次python tkinter窗口的内容
- multithreading - 是否可以在 boost::asio 中更改套接字的 io_context?
- sql - 双精度默认 0 不为空
- python - 将自定义小部件添加到 pyqt5 中的 QScrollArea 不会使滚动条出现
- build - premake5 是否可以在没有工作空间的情况下生成项目?
- openlayers - OpenLayers 基本标记
- node.js - 如何从猫鼬访问解析器上下文?
- powershell - Powershell Neo4j 连接 Invoke-RestMethod
- c++ - 二进制表达式的无效操作数('const pos_in_grid' 和 'const pos_in_grid')
- java - 连接到启用 SSL 的 Spring Cloud Config Server