【发布时间】:2020-07-11 21:38:53
【问题描述】:
在useEffect函数内的变量const user中,我得到一个用户对象,我想在文本字段中使用用户对象的id、名字和姓氏。是否可以在useEffect 函数之外使用用户对象?
在下面的代码中,用户对象在useEffect 之外使用时未定义。
- 感谢任何帮助!
import React, { useEffect, useState } from 'react';
import { useForm } from 'react-hook-form';
import { useLocation } from "react-router-dom";
interface userData {
id: number;
firstname: string;
lastname: string;
};
const [obj, setObj] = useState();
const location = useLocation<userData>();
useEffect(() => {
const user = allUsers.filter((obj) => obj.id === location.state.id);
// handling if user is undefined
if(user) {
console.log('Storing object data')
setObj(user);
} else {
console.log('No data!');
}
}, [location]);
return (
<div>
<h1>User Data</h1>
{/*Text field - id*/}
<TextField
name="id"
id="id"
label="ID"
value={obj.id}
fullWidth
/>
{/*Text field - firstname*/}
<TextField
name="firstname"
id="firstname"
label="First Name"
value={obj.firstname}
fullWidth
/>
{/*Text field - lastname*/}
<TextField
name="lastname"
id="lastname"
label="Last Name"
value={obj.lastname}
fullWidth
/>
</div>
);
【问题讨论】:
标签: reactjs typescript react-hooks tsx