首页 > 解决方案 > 有没有办法在反应功能组件渲染之前获取数据?

问题描述

我对反应很陌生,我创建了一个有错误的功能组件。

我想要实现的目标:
我需要从 reducer 中获取数据并在函数返回中使用它。问题是组件在加载数据之前呈现。

我的代码:

function ItemDetail() {
    const { id } = useParams();
    const [{items}, dispatch] = useStateValue(); // useStateValue = datalayer from reducer
    const [item, setEvent] = useState({});
    
    useEffect(() => {
        const filteredItem = items.find(item=> item.id == id);
        setEvent(filteredItem);
    }, [])

    return (
        <div className="eventDetail">
            // more HTML
        </div>
    )
    
}

export default ItemDetail

我尝试了什么:
我尝试使用一个类组件,但我没有让它工作。

错误: item.data() 不是函数(我 100% 确定它是因为返回时未加载数据)

标签: javascriptreactjs

解决方案


推荐阅读