状态未在使用效果中更新||数据正在获取但未更新状态||在本地它正在获取数据并进行更新而没有钩子

时间:2019-12-07 15:36:03

标签: reactjs react-hooks use-effect react-state

何时显示console.log()项目结果,但是当我控制台日志数据状态时,它仅显示具有空项目数组的initialstate(data)

  const [data, setdata] = useState({
    projects: []
  });

  useEffect(() => {
   const fetchData = async () => {
    const res = await axios('http://localhost:5000/api/projects');
    const projects = await res.data;
    setdata({ projects: projects });
    console.log(data);
  };
  fetchData();
 }, []);

2 个答案:

答案 0 :(得分:0)

data尚未初始化,useEffectrender生命周期之后运行,因此这种日志记录毫无用处。

无论如何,都应该更新状态,只是您没有选中“状态是否已更新”。

const [data, setdata] = useState({
    projects: []
  });

  useEffect(() => {
   const fetchData = async () => {
    const res = await axios('http://localhost:5000/api/projects');
    const projects = await res.data;
    setdata({ projects: projects });
    //           v Always results { projects: [] }
    console.log(data);
  };
  fetchData();
 }, []);

答案 1 :(得分:0)

axios('http://localhost:5000/api/projects')
.then(res => {
 const projects = res.data
 setdata({ projects: projects })
})