【问题标题】:I cant get the value from an array我无法从数组中获取值
【发布时间】:2021-01-20 14:05:52
【问题描述】:

当我尝试从 fakeData 获取值时,它在 foodDetails 中显示未定义。但其他显示输出正确。 如果我放置静态数据,那么它会显示这样的值 常量 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;

【问题讨论】:

    标签: arrays reactjs dynamic url-parameters


    【解决方案1】:

    因为来自useParamsfoodId 未定义?只需使用 useEffect 结合useState 即可控制foodDetails

    const [foodDetails, setFoodDetails] = useState();
    
    useEffect(() => {
      if(foodId) {
        setFoodDetails(foodFakeData.find(pd => pd.id === foodId));
      }
    }, [foodId]);
    

    【讨论】:

    • foodId in log show output 但未在 foodDetails 中定义,这是我无法理解的问题。
    • 现在可以了,我添加了toString方法,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2020-04-21
    相关资源
    最近更新 更多