因此,我使用帶有以下代碼的 API 從我的資料庫中提取資料:
let { id } = useParams();
const [Tenant, setTenant] = useState("");
useEffect(() => {
axios.get(`http://localhost:3001/tenants/byId/${id}`).then((response) => {
setTenant(response.data);
});
}, []);
然后我嘗試使用以下方法在我的 Material UI 文本欄位上設定默認值:
<TextField
required id="Field1"
defaultValue={Tenant.tenantName}
label="Tenant Name"
variant="outlined"
onChange={(event) => {setNtenantName(event.target.value)}}
/>
但是,我什么也沒得到。所以我決定 console.log(Tenant.tenantName) 并在我的控制臺中得到這個:

uj5u.com熱心網友回復:
當您嘗試訪問它時,您的狀態還沒有準備好。
所以你可以檢查一下。
{Tenant && (
<TextField
required id="Field1"
defaultValue={Tenant.tenantName}
label="Tenant Name"
variant="outlined"
onChange={(event) => {setNtenantName(event.target.value)}}
/>
)}
在旁注中,將州名大寫并不常見。
你可以把它改成:const [tenant, setTenant] = useState("");
只是為了約定
uj5u.com熱心網友回復:
Kevin 的建議應該很好用,但你也可以這樣做,它可能更容易閱讀,并且在獲取資料時會顯示一個加載器。
if(Tenant === undefined) return <div>Loading data....</div>
else return (
<TextField
required id="Field1"
defaultValue={Tenant.tenantName}
label="Tenant Name"
variant="outlined"
onChange={(event) => {setNtenantName(event.target.value)}}
/>
)
uj5u.com熱心網友回復:
那么為什么不在 console.log 之前嘗試 console.log(Tenant) 呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/445772.html
標籤:javascript 节点.js 反应
上一篇:物件可用時陣列的最后一個值
