0

The handleCreate function of my modal simply replaces last item on my table instead of creating a new one. What am I doing wrong

    handleCreate = () => {
        const { form } = this.formRef.props;
        form.validateFields((error, values) => {
            if (error) {
                return error;
            }
            form.resetFields();
            const newUsers = {
                age: values.age,
                birthday: values[DATE_PICKER].format('YYYY-MM-DD'),
                firstName: values.firstName,
                hobby: values.hobby,
                id: uuid(),
                lastName: values.lastName,
            };
            this.setState({
                users: users.concat(newUsers),
                visible: false,
            });
        });
    };
Ada
  • 559
  • 1
  • 3
  • 19

1 Answers1

0

you can do like this....

handleCreate = () => {
    const { form } = this.formRef.props;
    const users = [...this.state.users];
    form.validateFields((error, values) => {
        if (error) {
            return error;
        }
        form.resetFields();
        users.push({
            age: values.age,
            birthday: values[DATE_PICKER].format('YYYY-MM-DD'),
            firstName: values.firstName,
            hobby: values.hobby,
            id: uuid(),
            lastName: values.lastName,
        });
        this.setState({
            users,
            visible: false,
        });
    });
};

OR

handleCreate = () => {
    const { form } = this.formRef.props;
    form.validateFields((error, values) => {
        if (error) {
            return error;
        }
        form.resetFields();
        const newUsers = {
            age: values.age,
            birthday: values[DATE_PICKER].format('YYYY-MM-DD'),
            firstName: values.firstName,
            hobby: values.hobby,
            id: uuid(),
            lastName: values.lastName,
        };
        this.setState((prevState) => ({
            users: [...prevState.users, newUsers],
            visible: false,
        }));
    });
};
Herat Patel
  • 779
  • 3
  • 10