首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >{props.props.title}?为什么不是{props.title}?

{props.props.title}?为什么不是{props.title}?
EN

Stack Overflow用户
提问于 2020-02-22 02:45:34
回答 3查看 507关注 0票数 1

我还在学习如何在react和nextjs中使用API数据。但是,为什么我的函数只在我写{props.props.title}而不是我期望的{props.title}时起作用呢

代码:

代码语言:javascript
复制
function testItems(props) {
  console.log(props)
  return (
    <div className="col-md-6 d-flex align-items-stretch">
      <div className="card">
        <div className="card-body">
          <h1 className="card-title">{props.props.title}</h1>
        </div>
      </div>
    </div>
  )
}

export default testItems

当我读到调用道具的时候,我错过了什么吗?

我把testItems称为algolia react-instantsearch的热门:

代码语言:javascript
复制
const InfiniteHits = ( {hits, refineNext, hasMore} ) => {
  return(
    <div className="row">
      {hits.map((hit, index) => (
        <Hits props={hit} key={index} />
      ))}
      {hasMore &&
        <button className="ais-InfiniteHits-loadMore" onClick={refineNext}>Show more</button>
      }
    </div>
  )
};
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-22 02:55:34

我相信您正在向组件传递一个名为props的道具,它是一个具有名为props ({props: {title: "some title"}})属性的对象。

如果你想以prop.title的形式获得它,你可以像这样扩展属性

<Hit {...hit}, key={index} />

它会将props上的每个键作为一个道具传递进来。

票数 1
EN

Stack Overflow用户

发布于 2020-02-22 02:52:40

这就是问题所在。

代码语言:javascript
复制
<Hits props={hit} key={index} />

你应该像这样传球

代码语言:javascript
复制
<Hits hit={hit} key={index} />
票数 3
EN

Stack Overflow用户

发布于 2020-02-22 03:07:18

您正在将props作为一个道具传递到组件中。如果你只想使用道具一次,或者不想再使用它。您可以在function testItems({props})等testItems组件中使用解构,或者在<Hit title={hit.title} key={index} />Hit组件中传递title和其他属性(如果有的话)。

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

https://stackoverflow.com/questions/60344593

复制
相关文章

相似问题

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