【发布时间】:2021-04-29 13:23:52
【问题描述】:
这里是新的 react 开发人员,这里我有两个 useEffect,其中一个(第一个)是一个包含“名称”的对象,我想在我的第二个 useEffect 中使用它。第二个 useEffect 包含一个对象数组,这些对象数组具有“billingName”和“driverName”,其中一些具有相同的值,例如 driverName:“james”。我想要做的是在我的第二个useEffect中检查第一个useEffect中的'name'是否与'driverName'相同,然后才执行'setOrders(res); setRenderedData(res);'
我的错误信息:类型上不存在属性“driverName”...
我的对象:{ id: "98s7faf", isAdmin:是的, 名称:“詹姆斯”}
我的数组:[{billingName: "trump",driverName: "james"}, {billingName: "putin",driverName: "alex"}, {…}, {…}, {…}]
我的代码:
const [driver, setDriver] = useState<User>();
useEffect(() => {
api.userApi
.apiUserGet()
.then((res: React.SetStateAction<User | undefined>) => {
console.log(res);
setDriver(res);
});
}, [api.userApi]);
useEffect(() => {
api.caApi
.apiCaGet(request)
.then((res: React.SetStateAction<CaDto[] | undefined>) => {
if (driver?.name == res?.driverName) {
setOrders(res);
setRenderedData(res);
console.log(res);
}
});
}, [api.caApi]);
【问题讨论】:
-
您可以在
thenofapi.userApi中调用api.caApi -
错误似乎来自您的 API 结果,而不是来自您的
driver状态。 -
不,它的原因是比较数组和字符串
标签: javascript html reactjs typescript use-effect