这是我的组成部分:
import React, { useState } from "react";
const Product = () => {
const [count, setCount] = useState(0);
return (
<>
<span className="m-2 text-info">Laptop</span>
<span className="m-2 badge bg-primary">{format()}</span>
<button onClick={increase()} className="m-2 btn-sm btn-success">+</button>
<button onClick={decrease()} className="m-2 btn-sm btn-warning">-</button>
<button onClick={delet()} className="m-2 btn-sm btn-danger">Delete</button>
</>
);
function increase(){
setCount(count + 1);
}
function decrease(){
setCount(count - 1);
}
function delet(){
setCount(count - count);
}
function format(){
if (count === 0){
return "Zero";
}else{
return count;
}
}
}
export default Product;发布于 2022-03-08 13:04:29
您正在调用这些函数,而不是传递它们。
改变这个
<button onClick={increase()} className="m-2 btn-sm btn-success">+</button>
<button onClick={decrease()} className="m-2 btn-sm btn-warning">-</button>
<button onClick={delet()} className="m-2 btn-sm btn-danger">Delete</button>投入到这个
<button onClick={() => increase()} className="m-2 btn-sm btn-success">+</button>
<button onClick={() => decrease()} className="m-2 btn-sm btn-warning">-</button>
<button onClick={() => delet()} className="m-2 btn-sm btn-danger">Delete</button>或者这个
<button onClick={increase} className="m-2 btn-sm btn-success">+</button>
<button onClick={decrease} className="m-2 btn-sm btn-warning">-</button>
<button onClick={delet} className="m-2 btn-sm btn-danger">Delete</button>另外,我会将函数声明移到最上面,并将部分放在底部。
import React, { useState } from "react";
const Product = () => {
const [count, setCount] = useState(0);
function increase(){
setCount(count + 1);
}
function decrease(){
setCount(count - 1);
}
function delet(){
setCount(count - count);
}
function format(){
if (count === 0){
return "Zero";
}else{
return count;
}
}
return (
<>
<span className="m-2 text-info">Laptop</span>
<span className="m-2 badge bg-primary">{format()}</span>
<button onClick={increase} className="m-2 btn-sm btn-success">+</button>
<button onClick={decrease} className="m-2 btn-sm btn-warning">-</button>
<button onClick={delet} className="m-2 btn-sm btn-danger">Delete</button>
</>
);
}发布于 2022-03-08 13:03:01
您应该将onClick函数更改为箭头函数:
<button onClick={() => increase()} 发布于 2022-03-08 13:11:11
您必须更新您的onClick触发器,还必须重新格式化您的函数,正如我所看到的,您在return()之后使用了函数。
所以正确的代码是:
const Product = () => {
const [count, setCount] = useState(0);
function increase(){
setCount(count + 1);
}
function decrease(){
setCount(count - 1);
}
function delete(){
setCount(count - count);
}
function format(){
if (count === 0){
return "Zero";
}else{
return count;
}
}
return (
<>
<span className="m-2 text-info">Laptop</span>
<span className="m-2 badge bg-primary">{format()}</span>
<button onClick={() => {increase()}} className="m-2 btn-sm btn-success">+</button>
<button onClick={() => {decrease()}} className="m-2 btn-sm btn-warning">-</button>
<button onClick={() => {delete()}} className="m-2 btn-sm btn-danger">Delete</button>
</>
);
}
export default Producthttps://stackoverflow.com/questions/71395501
复制相似问题