راکت

ابجت تو درتو در state

1 پاسخ

سلام من چطور متونم آبجکت تو در تو در state داشته باشه برای post کردن دیتا
و همینطور در فرم و Validator صدا بزنم چون الان روی حالت ارور میده

this.state = {
                    fields : {
                        username : '',
                        firstname: '',
                        lastname: '',
                        image:'',
                        vehicle:{
                            name:'',
                            pelak:''
                        }                   
                    },
                    errors : {

                    }
            }

قسمت validator

//vehicle name
            if(validator.isEmpty(fields.vehicle.name)){
                formIsValid = false;
                errors['name'] = "نام خودرو خالی است";
            } else if(! validator.isLength(fields.vehicle.name , { min : 3 , max : 100})) {
                    formIsValid = false;
                    errors['name'] = "فرمت نام خودرو اشتباه است";
            }
handleRequest(){
            const { username } = this.state.fields;
            const { firstname } = this.state.fields;
            const { lastname } = this.state.fields;
            const { name } = this.state.fields.vehicle;
            const { pelak } = this.state.fields.vehicle;

            let officerID = localStorage.getItem('officer_id');

            axios({
                method : 'post',
                url:`http://pand.meandme.ir:4040/officer/${officerID}/driver`,
                data : {
                    username,
                    firstname,
                    lastname,
                    image,
                    vehicle:{
                        name,
                        pelak
                    }
                },
                config:{ headers : {'Accept': 'application/json','Content-Type':'application/json'}}
            })
            .then(response => {
                console.log('success');
                this.props.history.push(`/driver`);
            })
            .catch(error => {
                console.log(error);

            })

    }

@md.tavangar
@hesammousavi

ثبت پرسش جدید

پاسخ‌ها

1
محمد توانگر
محمد توانگر
@md.tavangar

تخصص: برنامه نویس موبایل و وب

سلام
برای validate که فکر میکنم باید فیلدهات رو از state بگیری الان شما همینطوری نوشتین پس فکر نکنم اصلا چیزی بیاره برای ولیدیشن کردن
برای axios هم فکر کنم روش زیر رو انجام بدی بهتره بعدش باید ببینی چه خطایی میده اون خطا رو رفع کنی

let { username,firstname,lastname,name,pelak} = this.state.fields
try{
axios.post(url,{username,firstname,name,pelak})}
catch(error){console.log(error)}

در نهایت توصیه میکنم کدت رو تکه تکه تست کن ببین کجا داری خطا میگیری و دلیلش چیه
روش ارسال تصویرت هم اشتباه هست حالا دقیقا اشاره نکردین ولی اگر میخوای یه تصویر کامل بفرستی اینجوری جواب نمیده

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام