我有一個來自后端的串列。此串列顯示用戶的發票。如果用戶沒有選擇至少一張發票,我希望禁用該按鈕。如果用戶選擇至少 1 張發票,我希望該按鈕處于活動狀態。但是發票和按鈕位于不同的組件中。
付款表.js
IDE在這里像這樣警告我;'setEnabledButton' 被分配了一個值,但從未使用過。
const [selectedItems, setSelectedItems] = useState([]);
const [enabledButton, setEnabledButton] = useState();
useEffect(() => {
if (selectedItems.length > 0) {
setEnabledButton = true;
} else {
setEnabledButton = false;
}
}, [selectedItems]);
保單付款資訊.js
<div className={hiddenControlButtonClass}>
<AS.Button variant="outlined" onClick={handlePayment} enabledButton>
{t('policy-payment-info.continue')}
</AS.Button>
</div>
uj5u.com熱心網友回復:
首先為您的 useState 函式設定默認狀態:
const [enabledButton, setEnabledButton] = useState(false);
在此之后,您需要通過添加執行 seState()
像這樣 :
useEffect(() => {
if (selectedItems.length > 0) {
setEnabledButton(true);
} else {
setEnabledButton(false);
}
}, [selectedItems]);
然后,您需要使用此狀態來啟用或禁用按鈕:
<div className={hiddenControlButtonClass}>
<AS.Button variant="outlined" onClick={handlePayment} disabled={enabledButton}>
{t('policy-payment-info.continue')}
</AS.Button>
</div>
uj5u.com熱心網友回復:
你的語法有點不對勁。setEnabledButton是一個必須被呼叫并賦予特定值的函式。嘗試這個:
const [selectedItems, setSelectedItems] = useState([]);
const [enabledButton, setEnabledButton] = useState(false);
useEffect(() => {
if (selectedItems.length > 0) {
setEnabledButton(true);
} else {
setEnabledButton(false);
}
}, [selectedItems]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491808.html
標籤:javascript 反应 反应式
