v2.5.2
Giriş yap

Redux tool kit, a non serialize hatası !

mahmutxd05
216 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Selamlar herkese, form uygulaması yaptım. Kayıtolma ekranında girdiğim verileri aktif olarak bir state'te tutuyordum. Bunlar redux'a geçirdim vee <b>a non serialize</b> hatası almaya başladım. Program aslında sorunsuz çalışıyor submit işlemlerimde verilerde gözüküyor. Ama konsol kısmı çıldırmış.

Ben sorunu biraz da olsa bulduğumu düşünüyorum. dispatch ile ben input gönderiyorum; <b>action.payload = input</b> olmuş oluyor.

Ben inputu gönderip bunun ismini ve value değerini redux sayfasında alıyorum. Acaba hataya bu sebep oluyor olabilir mi?

    //PROJE SAYFASI
    
      const handleChange = (e) => {
    dispatch(changeValues(e.target));
    //e.target
  };
  
  
  // REDUX SAYFASI
  
  import { createSlice } from "@reduxjs/toolkit";

const initialState = {
  values: {
    name: "",
    lastname: "",
    birthday: "",
    email: "",
    password: "",
    repassword: "",
    gender: "1",
    phoneNumber: 5,
    uyelikSozlesmesi: true,
    kampanyaHaber: false,
  },
};

export const signUpSlice = createSlice({
  name: "signUp",
  initialState,
  reducers: {
    changeValues: (state, action) => {
      console.log(action.payload); // İNPUT GELİYOR
      if (action.payload.name === "phoneNumber") {
        state.values = {
          ...state.values,
          phoneNumber: normalizeInput(action.payload),
        };
      } else {
        state.values = {
          ...state.values,
          [action.payload.name]: action.payload.value,
        };
      }
    },
   
  },
});



export const {
  changeValues,
  changeValuesUyelikSozlesmesi,
  changeValuesKampanya,
} = signUpSlice.actions;

export default signUpSlice.reducer;

    
    
    
    
mahmutxd05
449 gün önce

Sorunu çözdüm, aynı hatayı alanların faydalanması için yazıyorum.

    const inputValue = e.target.value;
    const inputName = e.target.name;

    dispatch({inputName,inputValue});

Şeklinde gönderip. çekebiliyormuşum. Ben bunu dispatch({e.target.name, e.target.value}) olarak göndermeyi denedim başaramadım :D

herkese iyi çalışmalar...