当前位置: 首页 > 知识库问答 >
问题:

通过从刀片服务器接收的阵列响应js循环

韶镜
2023-03-14

我在Laravel项目中使用React js作为前端。从控制器,我将数组传递到我的视图:

return view('shopCart')->with('items',$it);

现在在视图中,可以像这样循环数组:

@foreach($items as $item)
                <li><input type="checkbox" name=""> <span>{{$item->Name}}</span> <span></span>  <span>{{$item->Cost}}</span> </li>
@endforeach

这工作得很好。但是我想让视图更动态(顺便说一下,这是购物车中的产品列表)。例如,默认情况下,所有复选框都将被选中,这意味着用户正在购买所有商品。我希望如果用户取消选中一个框,总价格会发生变化。所以我做了一个React组件,并通过props将$项目数组传递给该组件:

<div id="listshops" datas={{$items}}></div>

还有一个组成部分:

class Items extends Component {
    render() {


        return (
            <div className="container">
               <a href="/products">Continue shopping</a>
               //LOOP THROUGH THE ARRAY OF PRODUCTS
            </div>
        );
    }
}

export default Items;


window.onload=function(){
if (document.getElementById('listshops')) {
    var data=document.getElementById('listshops').getAttribute("datas");
    ReactDOM.render(<Items items={data}/>, document.getElementById('listshops'));
}

}

我如何循环通过我传递给组件的数组,这样我就可以像在刀片中的@Foreach一样显示产品?

共有1个答案

周翰池
2023-03-14

数组#映射,不要“循环”。您正在将一个数据集(您的产品)映射到另一个大小相同的数据集(React组件)

const { items } = this.props;

return (
  <div className="container">
    <a href="/products">Continue shopping</a>
    {items.map(({ Name, Cost }) => <li key={Name}>
      <input type="checkbox" name="" /> <span>{Name}</span> <span></span>  <span>{Cost}</span>
    </li>)}
  </div>
);

通常,当您映射时,这很好地表明您正在使用一个也可以重用的组件。这可能是一种更干净的方法:

const Product = ({ Name, Cost }) => (
  <li>
    <input type="checkbox" name="" />
    <span>{Name}</span>
    <span></span>
    <span>{Cost}</span>
  </li>
);

然后在渲染中:

const { items } = this.props;

return (
  <div className="container">
    <a href="/products">Continue shopping</a>
    {items.map(({ Name, Cost }) => <Product {...{Name, Cost}}/>}
  </div>
);
 类似资料:
  • 我在做一个应用程序,把一些数据存储在数据库中,然后它再检索它。在服务器端,我使用的是PHP,在客户端,我有一个获取输入并将其传递给PHP文件的文件。 另外,我有这个JsonParser:

  • 有人知道netty服务器处理程序取消从web服务器接收数据的最佳方法吗?我有一个服务器处理程序,它将HttpRequests代理到web服务器。但是,当请求客户端取消请求时,我希望在不关闭服务器处理程序和web服务器之间的连接的情况下停止从web服务器接收服务器通道上的数据。 有谁知道我怎么才能做到这一点。你的答复将不胜感激。 非常感谢。

  • 我想用retforIt从服务器得到响应。下面是一些代码: 怎么了?我在哪里可以找到改装文档?是什么?请帮忙

  • 我有一个要求,其中,作为Web服务[Java]的一部分,我将作业的详细信息输入数据库,数据库由Windows服务[C#]异步处理,并对Javaweb服务通知作业的状态。 情景: 客户端对JavaWeb服务进行同步Restful调用。 JavaWeb Service将作业详细信息输入数据库(类似于进行异步调用),并等待Windows Service的响应(这是对JavaWeb Service的新HT

  • 我写了一个JAVA代码,使用Apache Commons Net FTPClient遍历FTP位置,并在Excel文件中获得输出。 我正在使用commons-net-3.0.1。罐子我做了一些测试 并发送,但仍会收到相同的错误。 我要做的就是遍历一个目录,如果找到了文件,就在excel中获取文件名和文件更新日期,如果找到了目录,就进入目录,直到再次找到文件。 请帮助并询问是否需要任何其他信息。我是

  • HTTP/1.1 200确定缓存-控制:max-age=0,必须重新验证 内容-处置:附件;filename=“执行摘要.pdf” 内容-类型:application/pdf