在useEffect中设置对象在React中不起作用

时间:2019-06-21 08:44:29

标签: reactjs

我是React的新手,我只想在表中显示记录并获取类似的数据

const [allowances, setAllowances] = useState([]);

  useEffect(() => {
    fetch("http://127.0.0.1:8000/allowances/")
      .then(data => {
        return data.json();
      })
      .then(data => {       
        setAllowances(data);      
      })
      .catch(err => {
        console.log("error",err);
      });
  }, []);

这是我如何检查长度=>

<div>{allowances.length}</div>

如果我在setAllowances(data)之前登录数据,则数据有3条记录。但是当我检查allowances.length时,没有记录。其显示像<div></div>。所以我认为这个setAllowances无法正常工作,对吗?怎么了?

更新

这是我在setAllowance =>之前记录的我的数据

enter image description here

2 个答案:

答案 0 :(得分:1)

您没有正确设置数据。根据{{​​1}}的内容,应为:

data

答案 1 :(得分:-1)

要使useEffect钩子每次状态更改时都进行更新,则需要将其作为参数传递。在将回调设置为allowances后,在方括号内传递useEffect会发生这种情况。查看this链接