I am looking for solution that when I get API response then I want to update searches property in the initial state but I am unable to update. I tried following methods but not working
state.searches = data // not working
state.searches.push(data) //not working
return {...state, searches:[...state.searches, state.searches.concat(data)] // also not working
How can I update searches property array with action.payload.data or push action.payload.data in searches property
import {createSlice, createAsyncThunk} from "@reduxjs/toolkit"
import { ENDPOINTS } from "../../backend/API"
import axios from "axios"
//SEARCH TENANT AXIOS CALL USING ASYNC THUNK
export const searchTenants = createAsyncThunk("searchTenants", async (data) => {
try {
//Creating API call using ENDPOINTS as Base URL (/api/tenants/search)
return await axios.post(ENDPOINTS.SEARCH_TENANTS, data).then(res => res.data)
} catch (error) {
//Incase of error catch error
return error.response.data.error[0]
}
})
//Creating Tenants Slice
export const tenantSlice = createSlice({
name: "tenants",
initialState: {
current: {},
data: [],
searches: []
},
reducers:{
clearTenants(){
return {
current: {},
data: [],
searches: []
}
}
},
extraReducers: (builder) => {
//@CaseNo 01
//@Request POST
//@Status Success
//@Loading False
//@Data Searched Data stored in state
builder.addCase(searchTenants.fulfilled, (state, action) => {
//Check for request success
if(action.payload.success === true){
const searches = action.payload.data
console.log("state is working")
state.searches = data
//return [...state.searches, ...searches]
// state.searches.push({id: "demo"})
}
// return state
// return actions.payload
})
}
})
//Export Reducer functions
export const {clearTenants} = tenantSlice.actions
export default tenantSlice.reducer ```