**尝试以下操作 当承诺启动时,按钮将首先被禁用。它将保持禁用,直到承诺解决,然后它将再次启用。请给我建议,因为我被卡在这里,不知道是否是正确的事情**。
let [enabled] = useState(false);
const getTotal = event => {
enabled = false;
calTotal().then(validateResult => {
// enabled = true;
});
}
<Button
onClick={() => new Promise((resolve) => {
resolve({
getTotal();
})
})}>Get Total</Button>
有几件事需要考虑。
enabled
你需要使用来自于 useState
钩子true
为了能够点击按钮请看这里的调整。
let [enabled, setEnabled] = useState(true);
const getTotal = event => {
setEnabled(false)
calTotal().then(validateResult => {
setEnabled(true)
});
}
<Button disabled={!enabled} onClick={() => getTotal()}>Get Total</Button>