arrays - 我无法从数组中获取值
问题描述
当我尝试从 fakeData 获取值时,它在 foodDetails 中显示未定义。但其他显示输出正确。如果我放置静态数据,那么它会显示像这样的值 const foodDetails = foodFakeData.find(pd => pd.id === 101); 但是如果我输入“foodId”,那么它会显示未定义的原因?在 console.log('foodDetails',foodId, foodDetails) 显示“foodDetails 112 undefined”
const FoodDetails = () => {
const { foodId} = useParams();
const foodDetails = foodFakeData.find(pd => pd.id === foodId);
console.log('foodDetails',foodId, foodDetails);
return (
<div>
<h3>Hello {foodId}</h3>
</div>
);
};
export default FoodDetails;
解决方案
因为foodId
fromuseParams
是未定义的?只需将 useEffect 与useState
to control结合使用foodDetails
。
const [foodDetails, setFoodDetails] = useState();
useEffect(() => {
if(foodId) {
setFoodDetails(foodFakeData.find(pd => pd.id === foodId));
}
}, [foodId]);
推荐阅读
- sql - 更新不存在的表变量
- haskell - 在 typeclass 实例中给出函数类型签名会出错
- python - AWS Glue Python-Shell:如何提供自己的库?
- amazon-web-services - AWS Cloudwatch 在日志监控中只显示“1”?
- c# - CsvHealper - 如何忽略 csv 中的空列
- kubernetes - 为同一端口上的不同路径匹配 Istio 虚拟服务路由
- spring - Gradle 无法解析 appengine
- sql-server - Oracle CURSOR 和 Azure SQL CURSOR 函数的区别
- javascript - 如何从 html div 数组中获取特定值
- ios - UITextField 没有响应点击