Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
48
rated 0 times [  52] [ 4]  / answers: 1 / hits: 15809  / 7 Years ago, mon, may 29, 2017, 12:00:00

I'm using Redux to make a simple store and unfortunately it's throwing this error:



 Cannot convert undefined or null to object


The browser points to the line of importing Redux



import * as redux from redux


I've also tried to import it this way but it gave the same error
import { createStore } from redux



this the code :



import * as redux from redux

let reducer = (state ={}, action) =>{
switch(action.type) {
case ADD_POLL:
return {
polls: [
...state.polls,
action.poll
]
}
default:
return state
}
}

let store = redux.createStore(reducer)

store.subscribe(()=>{
let currentState = store.getState()
console.log(currentState)
})

store.dispatch({
type: ADD_POLL,
poll: {
id: 1,
title: What's your fav Color,
votes: 230
}
})

More From » reactjs

 Answers
4

That error is thrown as in your reducer you are trying to spread a non existent property on the state object



...state.polls,


To be able to do so you have to define the shape of your initial state as



const initialState = {
polls: [],
};


Full working code of your example



import * as redux from redux

const initialState = {
polls: [],
};

const reducer = (state = initialState, action) =>{
switch(action.type) {
case ADD_POLL:
return {
polls: [
...state.polls,
action.poll
]
}
default:
return state
}
}

const store = redux.createStore(reducer)

store.subscribe(()=>{
let currentState = store.getState()
console.log(currentState)
})

store.dispatch({
type: ADD_POLL,
poll: {
id: 1,
title: What's your fav Color,
votes: 230
}
})

[#57627] Friday, May 26, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
dewayneh

Total Points: 538
Total Questions: 114
Total Answers: 97

Location: Liberia
Member since Fri, Oct 22, 2021
3 Years ago
;