我有一個問題,然后我有兩個輸入,如果兩個值相等,我不能允許用戶保存此編輯。
我的狀態包含來自 db 的資料
const [doctorRegisters, setDoctorResgisters] = useState<any>([]);
在這個陣列里面我包含這個
[{"__typename": "DoctorMedicalRegister", "counsil": "CRM", "id": "141", "isMainRegister": true, "register": "1234567/RS"}, {"__typename": "DoctorMedicalRegister", "counsil": "CRM", "id": "153", "isMainRegister": false, "register": "1234567/RS"}]
我需要比較兩個如果相等的暫存器,我不能允許用戶保存他保存的只是不同
這是我嘗試解決此問題的代碼
const isEquals = () => {
doctorRegisters.map((item: any) => {
if (item.register) {
doctorRegisters.map((item2: any) => {
if (item2.register) {
if (item.register === item2.register) {
console.log('iguais')
}
}
});
}
});
};
但這僅適用于未編輯的值我需要驗證輸入中更改此值時在這種情況下我僅在 db 中驗證此值是否等于
這是我的手柄更改
const handleEditRegisterCrm = (crm: string, id: number) => {
setDoctorResgisters(
doctorRegisters.map((item: any) => {
if (item && Number(item.id) == id) {
item.register = `${crm}/${item.register?.split('/')[1] || ''}`;
}
return item;
}),
);
};
uj5u.com熱心網友回復:
您可以執行以下操作:
const handleEditRegisterCrm = (crm: string, id: number) => {
if (!doctorRegisters.some((doctorRegister) => doctorRegister.register.includes(registerToCompare)) {
setDoctorRegisters(
doctorRegisters.map((item: any) => {
if (item && Number(item.id) == id) {
item.register = `${crm}/${item.register?.split('/')[1] || ''}`;
}
return item;
}),
);
}
};
請記住,您應該跟蹤registerToCompare以查找它是否已插入doctorRegisters串列中。我假設您可以從您的handleChange函式中獲得該值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/521101.html
上一篇:如何使reactnativepaperSearchbar圖示充當按鈕?
下一篇:ReactNative組件樣式
