14React实现购物车之列表渲染

实现列表的渲染

新建一个Shoppingcar.js 在里面写入代码

import React, { Component } from 'react'
import "./shoppingcar.css"

export default class Shoppingcar extends Component {
    constructor(props){
        super(props);
        this.state={
            list:[
                {id:1,goodsname:"商品一",goodsnum:100,goodsprice:2,checked:false},
                {id:2,goodsname:"商品二",goodsnum:200,goodsprice:10,checked:false},
                {id:3,goodsname:"商品三",goodsnum:1,goodsprice:5,checked:false}
            ],
            checkedCount:0,
            total:0,
            allNum:0
        }
    }
    render() {
        var trList = this.state.list.map(item=>
            <ul className="tr" key={item.id}>
            <li>
                <input type="checkbox" checked={item.checked}  onChange={(e)=>{    
                }}/>
            </li>
            <li>{item.goodsname}</li>
            <li>{item.goodsprice}</li>
            <li>
                <button >
                    {item.goodsnum>1?"-":""}
                </button>
                <input value={item.goodsnum} onChange={()=>{}}/>
                 <button>+</button>
            </li>
            <li>{(item.goodsprice* item.goodsnum).toFixed(2)}</li>
            <li onClick={()=>{
            }}>删除</li>
        </ul>  
        )


        return (
            <div className="shoppingcar">
                <ul className="tr">
                    <li>
                        <input type="checkbox" ref="checkAll" onChange={(e)=>{
                        }}/> 全选
                    </li>
                    <li>商品名称</li>
                    <li>商品价格</li>
                    <li>商品数量</li>
                    <li>商品小计</li>
                    <li>操作</li>
                </ul>   
                {trList}
                <ul className="tr">
                    <li>总数为:{this.state.allNum}</li>
                    <li>金额为:{this.state.total}</li> 
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                </ul>
            </div>
        )
    }
}

第二步写入需要的样式  shoppingcar.css

*{
    margin:0;
    padding: 0;
    list-style: none;
}
.shoppingcar{
    width: 600px;
    overflow: hidden;
    margin: 50px auto;
}
.shoppingcar .tr{
    width: 600px;
    height: 30px;
}
.shoppingcar .tr li{
    float: left;
    width: 100px;
    height: 30px;
    text-align: center;
    line-height: 30px;
    background-color: black;
    color: aliceblue;
}
.shoppingcar .tr li  input{
    width: 50px;
}

3:运行效果

4:针对js中代码进行解释

发布了19 篇原创文章 · 获赞 34 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览