I'm trying to extract data from state. I'm using redux.
const {currentPost } = useSelector(state => state.posts)
I expected to get an object with properties. Instead I get couple of undefined and then I get an object.
These undefined on the start causes that I can't destructure further like const {currentPost: {id} } = useSelector(state => state.posts)and returns error that it can't read property of undefined.
These posts are obtained by API.
I've tried to workaround it by use a function which checks if this currentPost is undefined and then pass null into these properties. However it's not suitable for project and this solution is error prone.
As I get more experience I want to share my knowledge for future young frontend developers
I'm using redux-toolkit https://redux-toolkit.js.org/
These undefined values are from async operations, so its their behaviour that sometimes before promise is completed return undefined value.
To overcome it and write stable code there is a need to add default values. In redux-toolkit you can use
const slice = createSlice({
  name: 'posts',
  initialState: {
    currentPosts: {
      value: {
        name: ''
      }
    },
    posts: []
  },
  reducers: {
    ...reducers
    },
})
In that case you'll get Object currentPosts, which is not undefined.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With