【问题标题】:Can't render inside a map function无法在地图函数内渲染
【发布时间】:2021-06-01 16:32:48
【问题描述】:

我有一个映射函数,它应该返回一个具有解构属性的组件 地图本身有效,当我控制台记录它们时,我会收到所有正确的值。但是当我将它们传递给组件并将它们插入返回时,什么都不会被渲染。

父组件:

export default function List({ activities }) {
  function renderThings() {
    activities.map((activity) => {
      const {
        title,
        price
      } = activity;
    
      return (
        <li>
          <Activity
            title={title}
            price={price}
          />
        </li>
      );
    });
  }
  return (
    <div>
      <ul className="List">{renderThings()}</ul>
    </div>
  );
}

Activity/子组件:

export default function Activity({
  title,
  price,
}) {

  return (
    <div className="list-item">
      <h1>{title}</h1>
      <p>{price}</p>
    </div>
  );
}

我看不出哪里出错了

【问题讨论】:

  • 你的函数renderThings 没有返回任何东西。

标签: javascript reactjs dictionary components jsx


【解决方案1】:

您需要return Array.prototype.map 结果:

return activities.map((activity) => {

希望对您有所帮助!

【讨论】:

    【解决方案2】:

    这段代码可以正常工作。

    export default function List({ activities }) {
      function renderThings() {
        return activities.map((activity) => {
          const {
            title,
            price
          } = activity;
    
          return (
            <li>
               <Activity
                 title={title}
                 price={price}
               />
             </li>
           );
         });
       }
       return (
         <div>
           <ul className="List">{renderThings()}</ul>
         </div>
       );
     }
     Activity/ child Component:
    
         export default function Activity({
       title,
       price,
     }) {
    
       return (
         <div className="list-item">
           <h1>{title}</h1>
           <p>{price}</p>
         </div>
       );
     }
    

    【讨论】:

    • 这个答案提供了什么,而另一个没有?至少你应该包括为什么你提供的代码会起作用..
    猜你喜欢
    • 1970-01-01
    • 2013-04-13
    • 2016-03-01
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    相关资源
    最近更新 更多