react加减事件

在使用接口数据的情况下要引入,当然在下方还有不需要接口的加减事件,可以耐心地看下去。

import axios from "axios";

下方是示例

在有更新接口的情况下直接写就好了,很简单

html

<button className='demo-icon' gap={30}>减</button>
<input type="text" value={s.num} />
<button className='demo-icon' onClick={()=>{jia(s.id,s.num)}} gap={30} >加</button>

js:接口就不放了

通过上面的点击事件传他的id和数量,num就是他的数量

他的减事件一样在这里就不写了

function jia(id,num) {
console.log(id);
console.log(num);
let a = num+1
  axios({
    url: "接口数据", // url
    params: {
      // 参数
      id:id,//id			
      num:a	//新数量		
    },
  }).then(function (res) {
    console.log(res, "试一下"); // 成功回调
  });
}

下面是不需要接口的加减事件

首先需要先引入自己需要的东西

也就是从react身上导入以下几个属性

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

接着就是在html里面创建点击事件

其实也不用这么多标签,字需要一个input和两个按钮就可以实现

    <div>
      <div >
        <center> <div>
                <button onClick={handleClick_jian_gwc}>减</button>
                {/* onChange={()=>fun()} */}
                <input type="text" value={cssr_gwc}
                style={{width:'40px'}}
               />
                <button onClick={handleClick_gwc}>加</button>
            </div></center>
            </div>
    </div>

JS部分

首先先让input的value为0

const [cssr_gwc, setCssr_gwc] = useState(0);

加事件

当点击加事件的时候触发

其实也就是创建一个变量,当点击的时候将这个值抛给他,就如下面的加1,减的话也是一样。

  const handleClick_gwc = useCallback((event) => {
      let fen = cssr_gwc;
      setCssr_gwc(fen + 1)
      console.log('购买+1');
    }, [cssr_gwc]);

减事件

  const handleClick_jian_gwc = useCallback((event) => {
      let fen = cssr_gwc;
      setCssr_gwc(fen - 1)
      console.log('购买-1');
    }, [cssr_gwc]);

全部代码部分



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


export default function Lianxi() {

  const [cssr_gwc, setCssr_gwc] = useState(0);
  const handleClick_gwc = useCallback((event) => {
      let fen = cssr_gwc;
      setCssr_gwc(fen + 1)
      console.log('购买+1');
    }, [cssr_gwc]);
  const handleClick_jian_gwc = useCallback((event) => {
      let fen = cssr_gwc;
      setCssr_gwc(fen - 1)
      console.log('购买-1');
    }, [cssr_gwc]);


  return (
    <div>
      
      <div >
        <center> <div>
                <button onClick={handleClick_jian_gwc}>减</button>
                {/* onChange={()=>fun()} */}
                <input type="text" value={cssr_gwc}
                style={{width:'40px'}}
               />
                <button onClick={handleClick_gwc}>加</button>
            </div></center>
           
            </div>


    </div>
  )
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
你可以使用React的状态管理来实现价格的加减和全选反选计算选中数量。下面是一个简单的实现示例: ```javascript import React, { useState } from "react"; function PriceCalculator() { const [items, setItems] = useState([ { id: 1, name: "Item 1", price: 10, checked: false }, { id: 2, name: "Item 2", price: 20, checked: false }, { id: 3, name: "Item 3", price: 30, checked: false } ]); const [selectAll, setSelectAll] = useState(false); const handleItemChange = (item) => { const newItems = [...items]; const index = newItems.findIndex((i) => i.id === item.id); newItems[index] = { ...newItems[index], checked: !newItems[index].checked }; setItems(newItems); }; const handleSelectAllChange = () => { const newItems = [...items]; newItems.forEach((item) => (item.checked = !selectAll)); setItems(newItems); setSelectAll(!selectAll); }; const getTotalPrice = () => { const totalPrice = items.reduce((acc, item) => { if (item.checked) { return acc + item.price; } return acc; }, 0); return totalPrice; }; const getSelectedCount = () => { const selectedCount = items.reduce((acc, item) => { if (item.checked) { return acc + 1; } return acc; }, 0); return selectedCount; }; return ( <div> <table> <thead> <tr> <th> <input type="checkbox" checked={selectAll} onChange={handleSelectAllChange} /> </th> <th>Item Name</th> <th>Price</th> </tr> </thead> <tbody> {items.map((item) => ( <tr key={item.id}> <td> <input type="checkbox" checked={item.checked} onChange={() => handleItemChange(item)} /> </td> <td>{item.name}</td> <td>${item.price}</td> </tr> ))} </tbody> </table> <div>Total Price: ${getTotalPrice()}</div> <div>Selected Count: {getSelectedCount()}</div> </div> ); } ``` 在这个实现中,我们使用了React的`useState`来管理状态。`items`数组包含每个项目的数据,包括`id`、`name`、`price`和`checked`属性。`selectAll`状态表示是否全选。 `handleItemChange`函数用于处理单个项目的选择更改。它创建一个新的`items`数组,并将更改后的项目替换原始数组中的项目。最后,它将新的`items`数组设置为状态。 `handleSelectAllChange`函数用于处理全选/反选更改。它创建一个新的`items`数组,并将`checked`属性设置为`!selectAll`。最后,它将新的`items`数组和新的`selectAll`状态设置为状态。 `getTotalPrice`函数使用`reduce`方法计算所有选中项目的总价。 `getSelectedCount`函数使用`reduce`方法计算选中的项目数。 在组件的返回值中,我们使用`<table>`元素显示项目列表,并使用`<input>`元素来显示选择框。`<div>`元素用于显示总价和选中的项目数。 此实现仅用于演示目的,您需要根据自己的需求进行调整和修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锅盖哒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值