【问题标题】:React Context Mapping反应上下文映射
【发布时间】:2020-08-07 22:40:03
【问题描述】:

我创建了一个全局上下文 api 来从我的 firebase 中提取所有数据,然后通过 React Provider 发送它。但我似乎无法映射我收到的对象数组。

const Schedule = () => {
  const config = useContext(ConfigContext);
  return (
    <>
      <div id="ScheduleContainer" className="row">
        <div className="col-sm-4">
          <img
            src={clock}
            alt="clock"
            title="clock|Icon made by flaticon author dmitri13"
          ></img>
        </div>
        {console.log(config.scheduleMap)}
        <div className="col-sm-8">
          {config.scheduleMap.map((data) => (
            <h1>{data.Event}</h1>
          ))}
        </div>
      </div>
    </>
  );
};

我在控制台记录它的地方,我可以看到数据。显示如下:

但是当我尝试映射它时,我收到以下错误,TypeError: Cannot read property 'map' of undefined

【问题讨论】:

    标签: reactjs react-hooks react-context


    【解决方案1】:

    Reference

    当我们得到这样的错误时,我们可能是以异步方式获取值。我们应该为我们的变量提供一个初始值或有条件地渲染它或两者兼而有之。

    按照 sn-p 可能会解决您的问题。

    {config.scheduleMap !== undefined ? 
        config.scheduleMap.map(data=>(
           <h1>{data.Event}</h1>))
         :
        ''
    }
    

    【讨论】:

    • 他可能是对的......你不能映射数据,因为它还没有被提取......但是当你到达控制台时它是
    • 是的,它奏效了。我只是将初始变量传递给一个空数组,但后来它被填充了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    相关资源
    最近更新 更多