Recibo un error de cliente 400 y digo state.category.push no es una función y el estado actual está pendiente. Seré feliz si alguien me ayuda en esto. La matriz de categorías no acepta los datos que ingresan. Tengo tanto el archivo de formulario como el archivo reductor allí. Estoy tratando de crear una matriz de categorías para aceptar la categoría de usuarios y luego generarla.
blogSlice.js Mi archivo Reducer
const urlParams = new URLSearchParams(window.location.search) const TokenAuthless = urlParams.get('enter') if(TokenAuthless){localStorage.setItem('authless', JSON.stringify(TokenAuthless))} var Token = JSON.parse(localStorage.getItem("authless")) const initialState = { blogItems: [], isLoading: null, category: [{}], authors: [], } const categoryUrl = 'api/v1/admin/createBlogCat'; var api_origin = 'xxxxxxxxxxxx' export const insertCategory = createAsyncThunk('blog/insertCategory', async(data, thunkAPI) => { const{ rejectWithValue } = thunkAPI; try { const res = await fetch(`${api_origin}/${categoryUrl}`,{ method :'POST', mode: 'cors', body: JSON.stringify({data}), headers : { 'Authorization': `Bearer ${Token}`, 'Content-type':'application/json', 'Accept':'application/json', 'Access-Control-Allow-Origin':'*', }, }) const catData = await res.json(); return catData.data; } catch (error) { return rejectWithValue(error.message) } }) [insertCategory.pending]:(state, action) => { state.isLoading = true; }, [insertCategory.fulfilled]: (state, action) => { state.isLoading = false; console.log(action.payload); console.log(current(state)) state.category.push(action.payload); console.log('the state category', state.category); }, [insertCategory.rejected]:( state, action ) => { state.isLoading = false; },CreateCategory.js Creando un formulario para aceptar la entrada aquí
const CreateCatAut = () => { const [name, setName] = useState(''); const dispatch = useDispatch() const handleSubmit=(e)=>{ e.preventDefault(); const categoryData = {name} dispatch(insertCategory(categoryData)); console.log(categoryData) } return ( <form onSubmit={handleSubmit}> <input type="text" placeholder="Active Input" value={name} onChange={(e)=> setName(e.target.value)} /> )Significa que su state.category no es una matriz. A
state.category.push(action.payload)Asigné un valor a state.category que aún no es una matriz. Primero creando una matriz y luego colocando ese elemento en ella.
state.category= [action.payload]y en las próximas iteraciones, tendré una matriz con un elemento y puedo usar push en él.