React useEffect()不会将获取的项目添加到状态

时间:2020-02-16 13:01:23

标签: reactjs react-hooks

我正在尝试通过钩子与提供者createContext()建立全局上下文,从API端点获取数据,数据console.log(itemsJson)成功打印,但是

setItems(itemsJson)

console.log(items)

打印一个空对象{}(可能是最初作为占位符添加到该状态的对象)。

import React, {useState, createContext, useEffect} from 'react'

export const ItemsContext = createContext()

export const ItemsProvider = (props) =>{
    const [items, setItems] = useState({})

    useEffect(()=>{
        const fetchItems = async () =>{
            const data = await fetch('http://ddragon.leagueoflegends.com/cdn/10.3.1/data/en_US/item.json');
            const itemsJson = await data.json();
            console.log(itemsJson)


setItems(itemsJson)
        console.log(items)
    }
    fetchItems()
},[])

return(
    <ItemsContext.Provider value={'hello'}>
        {props.children}
    </ItemsContext.Provider>
)
}

我在做什么错了?

0 个答案:

没有答案