簡單的驗證非常容易使用MobX自行創建。對於像這樣的單個字段,驗證函數的一個簡單方法可能如下所示:
在組件中,我們有一個錯誤字段,只有在輸入已提交時纔會顯示(可以通過按鈕按鈕或無論)
return <div>
<input placeholder="FirstName" type="text"
defaultValue={Contact.FirstName} onChange={(e) => handler(e)} />
{submitted && <span className="error-message">{Contact.FirstNameError}</span>}
</div>;
在可觀察到的類(I所用的非裝飾樣式),我們將該字段定義爲可觀察到的,和一個錯誤消息類作爲計算值。
class Contact {
constructor() {
extendObservable({
submitted: false,
FirstName: observable(),
FirstNameError: computed(() => {
if(this.FirstName.length < 10) {
return 'First name must be at least 10 characters long';
}
// further validation here
return undefined;
})
})
}
}
你可以輕鬆地添加一個額外hasError
計算值,只是檢查是否FirstNameError
有一個值。
這種方法擴展到幾個輸入。如果你開始有一羣人,那麼你會希望尋找到像你自己寫來管理您的驗證第三方庫或東西的抽象。你可以寫一個函數生成你需要基於一個小配置的計算性能。