Reactjs 每当我尝试访问一个元素时,数组就会变得未定义 一些背景

Reactjs 每当我尝试访问一个元素时,数组就会变得未定义 一些背景,reactjs,express,Reactjs,Express,我目前正在使用React的上下文API通过组件传递从我的API(Nodejs、Express、MongoDB)收集的数据。有一个名为boards的数组,我在其中存储用户订阅的各种“boards”的ID,稍后将使用该ID发出GET或fetch请求,以检索有关它们的信息 当我第一次读取React中的值时: fetch('http://localhost:8080/api/users/login', options) .then(res => res.json()) .then(

我目前正在使用React的上下文API通过组件传递从我的API(Nodejs、Express、MongoDB)收集的数据。有一个名为boards的数组,我在其中存储用户订阅的各种“boards”的ID,稍后将使用该ID发出GET或fetch请求,以检索有关它们的信息

当我第一次读取React中的值时:

       fetch('http://localhost:8080/api/users/login', options)
.then(res => res.json())
.then( res => {
  if(res.status !== 200) { setMessage(res.message) } 
  else {
    setMessage(""); 
    setLogged(true); 
    setuserID(res.userID); 
    setToken(res.token); 
    setBoards(res.boards); } //Retrieve boards here
    console.log(res);
 });
稍后,我在另一个组件中访问boards的值,在该组件中,我需要使用其元素生成GET请求的URL

问题 当我记录电路板的值时:

useEffect(() => {
    console.log(boards);  
  });

但是,当我尝试访问它时,基本上:

useEffect(() => {
    console.log(boards[0]);  
  });
我得到:

类型错误:电路板未定义


如果您能在这里帮助您识别问题,我们将不胜感激。

由于api需要解决,您需要进行检查,您可以尝试使用以下代码

useEffect(() => { if(boards) console.log(boards[0]);}, [boards]);
注:

这将在每次、每次渲染时调用,这就是原因,即使api需要您能够看到的时间


您可以阅读有关useEffect第二个参数的更多信息

尝试更新代码,如useEffect(()=>{console.log(boards[0]);}[boards]);检查董事会是否响应第一个元素你得到了他们的nerrma,你能显示你定义董事会状态的位置吗?看起来你试图在董事会初始化之前获得董事会。尝试将第二个参数添加到
useffect(()=>{…},[boards])
@dileptomas感谢您的快速响应!我尝试添加第二个参数,即
useffect(()=>{…},[boards])虽然仍然得到相同的TypeError。请在上面的代码中添加一个if条件,然后重试?
useEffect(() => {
    console.log(boards);  
  });