useMutation
,在提交表单时使用mutation
来提交表单数据。该功能会在使用者输入表单时自动保存表单数据。import { useMutation } from '@apollo/client';
function Form() {
const [savedFormData, setSavedFormData] = useState({});
const [saveFormData] = useMutation(SAVE_FORM_DATA, {
variables: { data: savedFormData },
});
function onInputChange(inputName, inputValue) {
setSavedFormData((prevState) => ({
...prevState,
[inputName]: inputValue,
}));
saveFormData();
}
...
}
useEffect
Hook监听表单数据的变化,并在组件卸载前打印表单数据。这将确保数据在表单未保存时不会丢失。import { useMutation, useEffect } from '@apollo/client';
function Form() {
const [savedFormData, setSavedFormData] = useState({});
const [saveFormData] = useMutation(SAVE_FORM_DATA, {
variables: { data: savedFormData },
});
useEffect(() => {
return () => {
console.log(savedFormData);
};
}, []);
function onInputChange(inputName, inputValue) {
setSavedFormData((prevState) => ({
...prevState,
[inputName]: inputValue,
}));
saveFormData();
}
...
}
通过上述方法,表单数据将自动保存,无需保存按钮,处理器或其他复杂的用户操作。