首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Typerror: object不是函数,或者它的返回值在react 16.13.1中不可迭代

Typerror: object不是函数,或者它的返回值在react 16.13.1中不可迭代
EN

Stack Overflow用户
提问于 2020-08-12 17:53:09
回答 1查看 650关注 0票数 0

我使用的是react版本16.13.1。在我的project.but中,我经常使用钩子,现在甚至在我使用它之前就得到了这个错误。

代码语言:javascript
运行
复制
export default function TourData(props) {
  const [collapsed, setCollapsed] = useState();
  const withinDatacollapse = props.tourWithin.slice(1);
  const withinDatashow = props.tourWithin.slice(0, 1);

  function handleViewAll() {
    setCollapsed(!collapsed);
  }

  function Object(props) {
    return (
      <div>
        {props.data &&
          props.data.map((item, index) => (
            <div key={index} className="within">
              <div
                className="image"
                style={{ background: `url(${item.image})` }}
              >
                <div className="destination">{item.country}</div>
              </div>
              <div className="options">
                <div>
                  <h5>Options</h5>
                  <div className="user-select">
                    <Select
                      options={item.options}
                      placeholder={<h4>Select Option</h4>}
                    />
                  </div>
                </div>
              </div>
              <div className="date-select">
                <div className="user-select">
                  <Select
                    options={item.date_options}
                    placeholder={<h4>Select Date</h4>}
                  />
                </div>
              </div>
              <div>
                <button>Go!</button>
              </div>
            </div>
          ))}
      </div>
    );
  }
  return (
    <div className="route">
      <div className="list-box">
        <Object data={withinDatashow} />
        <Collapse in={collapsed}>
          <Object data={withinDatacollapse} />
        </Collapse>
        <div className="bottom-view-section">
          <button onClick={handleViewAll}>View All</button>
        </div>
      </div>
    </div>
  );
}

在这里,我刚刚声明了钩子,并得到了这个错误。我找不到哪里出了问题。

一开始,我在映射的地方有一个错误的TypeError: Cannot read property 'map' of undefined,所以我不得不在映射之前放置props.data &&

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-12 18:04:47

您不应该将组件命名为Javascript的关键字,比如对象或类。

另外,您可能希望为props.placeData定义默认值,这样当它未定义时,就不会得到错误。

代码语言:javascript
运行
复制
export default function AppMain({placeData = [], ...props}) {

或者你也可以签个名,说“没有地方”之类的话。由你决定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63382186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档