محمد
6 سال پیش توسط محمد مطرح شد
1 پاسخ

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

سلام من چطور متونم آبجکت تو در تو در 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


ثبت پرسش جدید
محمد توانگر
تخصص : برنامه نویس موبایل و وب
@md.tavangar 6 سال پیش مطرح شد
0

سلام
برای 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)}

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


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

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