我在嘗試禁用與按鈕的互動時遇到登錄問題。這個想法是在 2 個文本欄位為空時禁用提交按鈕,但無論是否為空(始終可點擊,或始終不可點擊)我都有相同的結果。下面我具體說明我的想法,以及我如何實作它。
我有兩個狀態來存盤來自兩個文本輸入的值,然后我有一個函式“isEmpty”來查詢這些狀態是否為空(“”)。稍后,在“提交”按鈕中,我有一個屬性“禁用”,該屬性的值是 isEmpty 的結果,即,如果 isEmpty 為真,則禁用為真,除非文本輸入被填充,否則用戶不會單擊該按鈕。我嘗試了一些方法,例如更改其他選項的回傳值,或者更改 disable 的值,但我沒有好訊息。
我從網路和這個站點搜索,解決方案不能解決我的問題。
在這里,我分離了函式、狀態和屬性的一些代碼。
<View style={styles.submit}>
<TouchableOpacity
onPress={() => checkValidation()}
disabled={emptyFields}
>
<Text style={styles.button}> Submit </Text>
</TouchableOpacity>
</View>
checkEmptyFields -> checkValidation 呼叫函式以確定文本輸入是否為空
const checkEmptyFields = () => {
if (
(id === "" && psw === "") ||
(id === "" && psw !== "") ||
(id !== "" && psw === "")
)
setEmptyFields(true);
};
const checkValidation = () => {
checkEmptyFields();
verifyUser();
resetStates();
};
使用的狀態
const [id, setId] = useState("");
const [psw, setPsw] = useState("");
const [emptyFields, setEmptyFields] = useState(false);
uj5u.com熱心網友回復:
我發現了問題。在禁用屬性中,我評估僅在 onPress 函式中計算的狀態。解決方法是復制行 checkEmptyFields 內禁用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/442301.html
上一篇:是否可以將多個值保存到一個按鈕?
