brilliant-orangeB
Refine3y ago
4 replies
brilliant-orange

How to delete input field name with value before submitted form

my-json-data like this "
"groupdetail": [
{
"term_1": 11,
"term_2": 5555,
"term_3": 4444,
"term_4": 10,
"term_5": 10,
"term_6": 7777,
"term_7": 55,
"term_8": 44,
"term_9": 33,
"id": 1
},
"

export const EditPage = ({ items, id }) => {
  const [termValues, setTermValues] = useState({});
  const [itemsState, setItemsState] = useState(items);

  const {
    handleSubmit,
    refineCore: {onFinish},

    saveButtonProps,
  } = useForm<HttpError>({
    shouldUseNativeValidation: true,
    refineCoreProps: {
      resource: "groupdetail",
      action: "edit",
      id: id,
    },
  });

const handleRemove = () => {
    if (Object.keys(itemsState).length > 2) {
      const keys = Object.keys(itemsState);
      const lastItemKey = keys[keys.length - 1];
      setItemsState((prevState: any) => {
        const newState = {...prevState};
        delete newState[lastItemKey];
        return newState;
      });
    }
  };

const onSubmit = () => {
    console.log(itemsState);
    onFinish(itemsState).then(r => {
    });
  };

<form onSubmit={handleSubmit(onSubmit)}>


When "handleRemove" occurs, the object with the last data, "term_9": 33, deleted is passed to onSubmit. However, in my-json-data, "term_9": 33 remains intact. How can I delete this?
Was this page helpful?