【问题标题】:How to conditional render inside map in a functional component of react js如何在 React js 的功能组件中在地图内进行条件渲染
【发布时间】:2021-09-02 14:59:34
【问题描述】:

我有一个数组。我想在其中迭代并进行条件检查并显示正确的元素。我正在使用功能组件。

下面是一个例子:

import React, { useState, useEffect } from "react";

function Job(props) {
  const [resp_data, setdata] = useState("");
  const [look, setlook] = useState("");
  useEffect(() => {
//    some api calls happen here and response data is stored in state resp_data
  }, [props]);
  return (
    <>
    <div className="product_list">
        {resp_data.length > 0
          ? resp_data.map((item) => {
              {item.looking_for === "work" ? (
                  <div className="card-rows work" key={item.id}>
                    work
                  </div>
                ) : (<div className="card-rows no_work" key={item.id}>
                No work
              </div>)
              }
            })
          : <div>array length is 0</div>}
      </div>
    </>
  );
}

export default Job;

从useEffect内部发生的api调用接收到的响应数据存储在状态变量resp_data中。

如果 resp_data 长度不为零,我需要遍历列表并检查字段值“looking_for”是否等于“work”

如果为 true 则显示一个组件,否则显示另一个组件。

如果 resp_data 长度为零,则显示“数组长度为零”

这是我想实现的,但我找不到很多功能组件的答案。我尝试了很多可能的方法,比如换牙套、换牙套等等……我的运气不好。

非常感谢任何帮助。

【问题讨论】:

  • 嘿,您在返回 jsx 时错过了 return 关键字。 ` return
    work
    `

标签: javascript reactjs


【解决方案1】:

你没有从'map'函数返回任何东西。

resp_data.map((item) => (
          item.looking_for === "work" ? (
              <div className="card-rows work" key={item.id}>
                work
              </div>
            ) : (<div className="card-rows no_work" key={item.id}>
            No work
          </div>)
          )
        )

【讨论】:

  • 您好,您是否发布了我错误提出的答案或问题?
  • 嘿,我对map函数做了一些改动,让它返回你想要返回的JSX,只是语法调整
  • @yondu_udanta 有办法制作ele if 吗?
猜你喜欢
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 2020-06-23
  • 1970-01-01
  • 2022-01-18
  • 2020-09-20
相关资源
最近更新 更多