React:未捕获(在承诺中)TypeError:无法读取未定义的属性(读取“setState”)
2022-04-12
257
我收到此错误:
实际上,我试图在单击按钮时更改按钮文本几秒钟。
这基本上是针对 添加到购物车 按钮的,我想在同一函数中为我的 API 调用保留按钮过程几秒钟。
我的代码:
const AddToCart = async (sku) => {
this.setState({ buttonText: "Loading..." });
setTimeout(() => {
this.setState({ buttonText: "Saved" });
}, 5000);
}
const [value, setvalue] = useState([]);
const initialState = "ADD TO CART";
const [buttonText, setButtonText] = useState("ADD TO CART");
render() {
return (
<a onClick={()=>{AddToCart(item.sku)}} className="add-to-cart-btn">
<i className="fa fa-solid fa-cart-shopping"></i>{buttonText}</a>
);
}
My Final code is what I am trying to do.
const AddToCart = async (sku) => {
this.setState({ buttonText: "Loading..." });
const user_id = localStorage.getItem('card_id');
let product_details = {
sku_name: sku,
qty: 1,
quote_id: user_id
}
setTimeout(() => {
this.setState({ buttonText: "Saved" });
}, 5000);
dispatch(useraction.addtocartRequest(product_details));
}
我是这项技术的新手。任何其他建议也对我有很大帮助。 非常感谢您的考虑!:-)
2个回答
这里您使用的是
this.setState
,它用于基于类的组件,但您使用的是基于功能的组件,因此不要使用
this.setState
,而只需编写
setButtonText('Loading...')
smith chokshi
2022-04-12
您应该使用 react hooks 而不是
this.setState
,操作方法如下:
const [buttonText, setButtonText] = useState("ADD TO CART");
// buttonText is value getter
// setButtonText is value setter
因此,如果您想更新状态的值:
setButtonText(newValue)
adel
2022-04-12