【问题标题】:Value not showing in the table值未显示在表中
【发布时间】:2021-12-23 09:08:07
【问题描述】:

我正在尝试通过循环使用道具中接收到的数据来填充表格。但是数据没有在 UI 中呈现 :(,如果我手动放置它显示的任何数据。以下是我的代码

要填充的代码

{props.uiProductCart.forEach((data) => {
           
            <tr data-index={data.srno}>
              <td>{data.srno}</td>
              <td>{data.name}</td>
              <td>{data.price}</td>
              <td>{data.quantity}</td>
              <td>{data.total}</td>
              <td>
                <BtnDelete title="Remove" />
              </td>
            </tr>;
          })}

【问题讨论】:

    标签: html typescript next.js react-props


    【解决方案1】:

    没有完整的代码示例,很难确定我的答案是否完整。
    但是,首先我认为第一行中的forEach 应该是map

    forEach

    forEach() 方法对每个数组元素执行一次提供的函数。

    来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

    map

    map() 方法创建一个新数组,其中填充了对调用数组中的每个元素调用提供的函数的结果。

    来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

    换句话说,forEach 函数不会返回任何要由 react 渲染的内容。它只是循环一个集合,构建你的模板然后丢弃它。 而map 函数将返回构造的模板以进行反应,以进行渲染。

    这里的官方 React 文档也演示/记录了这一点:
    https://reactjs.org/docs/lists-and-keys.html

    示例

    我以code sandbox 为例。

    注意:括号!

    在将forEach 替换为map 时,请确保使用正确的括号。

    以下两个都可以,因为 map 函数没有返回任何内容:

    {props.uiProductCart.map((data) => {
      return (
        <tr data-index={data.srno}>
          ...
        </tr>
      );
    })}
    
    {props.uiProductCart.map((data) => (
      <tr data-index={data.srno}>
        ...
      </tr>
    ))}
    

    但这将工作:

    {props.uiProductCart.map((data) => {
        <tr data-index={data.srno}>
          ...
        </tr>
    })}
    

    【讨论】:

    • 感谢您宝贵的时间兄弟....但它没有工作。我已经试过了。
    • @SumitSingh 我通过添加代码沙箱示例和关于括号的通知来扩展我的答案。你能检查一下这是否能解决你的问题吗?
    • Thnx mate 它解决了我的问题
    猜你喜欢
    • 2016-03-02
    • 2018-09-28
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多